To ensure lsp/eglot settings have precedence over local servers (e.g. cider and lookup handlers). Ref: clojure-emacs/cider#3170 |
||
---|---|---|
.. | ||
autoload.el | ||
config.el | ||
doctor.el | ||
packages.el | ||
README.org |
lang/scala
Description
+lsp
Integration
Prerequisites
Coursier
Note: Coursier is only required to install Metals. If system is running arch linux this step can be safely skipped.
Ubuntu / Debian / Fedora
curl -fLo cs https://git.io/coursier-cli-linux &&
chmod +x cs &&
./cs
MacOS
curl -fLo cs https://git.io/coursier-cli-macos &&
chmod +x cs &&
(xattr -d com.apple.quarantine cs || true) &&
./cs
Arch
yay -S coursier
Metals
Ubuntu / Debian / Fedora / MacOS
Note: Update following command to latest version of metals found here.
coursier bootstrap \
--java-opt -Xss4m \
--java-opt -Xms100m \
--java-opt -Dmetals.client=emacs \
org.scalameta:metals_2.12:0.9.4 \
-r bintray:scalacenter/releases \
-r sonatype:snapshots \
-o /usr/local/bin/metals-emacs -f
Arch
yay -S metals
Features
According to https://scalameta.org/metals/docs/editors/overview.html it adds
- Goto Definition
- Completions
- Hover
- Paremeter Hints
- Find References
- Run/Debug
- Find Implementations
- Rename Symbol
- Code Actions
- Document Symbols
- Formatting
- Folding
- Organize Imports
Notes
- Projects are required to have scala version
2.11.12
,2.12.8
,2.13.0
or greater. - Latest version of sbt is recommended.
- Running
M-x lsp-metals-doctor-run
helps diagnose problems. - Full reference here: https://scalameta.org/metals/docs/editors/emacs.html