/lsp-scala

Scala support for lsp-mode using metals

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

DEPRECATED - lsp-scala

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

Installation instructions with metals are available here: https://scalameta.org/metals/docs/editors/emacs.html

Other Scala language servers

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.

Does it work?

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-mode

  • 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 does
  • lsp-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 inline
  • lsp-ui-doc
  • lsp-ui-imenu
  • lsp-ui-peek
  • lsp-ui-sideline-enable

xref

  • xref-find-definition: finds definitions of symbols and types