Moved add-hook calls (for tree-sitter initialization) into their respective modes' config blocks, or nearby, to be consistent with how other, similar tools (like lsp!) are initialized, and does so at runtime, rather than at expansion/compile time, which eval-when! caused. |
||
---|---|---|
.. | ||
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