lsp-scala
is now part of lsp-mode as lsp-metals
. Please do not use this package.
Scala support for lsp-mode, mainly focus on metals.
Installation instructions with metals are available here: https://scalameta.org/metals/docs/editors/emacs.html
Other Scala language servers should work in theory. The easiest way,
if your server launches from the command line, is to customize
lsp-scala-server-command
and lsp-scala-server-args
.
metals describes itself as "work in progress". Temper your expectations, cheer them on, and help if you can. Though many lsp-mode features are not yet implemented, those that are appear to be working well. Kudos to the metals team.
Some of this is too nuanced to fit in a boolean. Some of this may be me my misunderstanding. More user experience reports welcome.
lsp-capabilities
lsp-describe-thing-at-point
lsp-document-highlight
: Capability not supported by the language server: "documentHighlightProvider"
lsp-execute-code-action
: I don't know what this doeslsp-format-buffer
lsp-goto-implementation
lsp-goto-type-definition
lsp-hover
lsp-rename
: Capability not supported by the language server: "renameProvider"
lsp-restart-workspace
lsp-signature-help
: Capability not supported by the language server: "signatureHelpProvider"
lsp-workspace-folders-add
: Capability not supported by the language server: "workspaceFolders"
lsp-workspace-folders-remove
: Capability not supported by the language server: "workspaceFolders"
lsp-workspace-folders-switch
: Capability not supported by the language server: "workspaceFolders"
lsp-ui
lsp-ui-flycheck
: compiles on save, renders errors inlinelsp-ui-doc
lsp-ui-imenu
lsp-ui-peek
lsp-ui-sideline-enable
xref
xref-find-definition
: finds definitions of symbols and types