These optional dotfiles indicate the root of a module or module group (:lang), and will later contain module metadata. They will also serve as an alternative to packages.el and doctor.el, and will aide the parts of the v3.0 module API concerned with resolving the current module from a path (`doom-module-from-path`), which currently rely too heavily on parsing path strings. For now, however, they're simply placeholders. |
||
---|---|---|
.. | ||
.doommodule | ||
autoload.el | ||
config.el | ||
doctor.el | ||
packages.el | ||
README.org |
:lang scala
Description unfold
This module adds scala and sbt support to Doom Emacs.
Through the power of Metals (LSP) this module offers:
- Goto Definition
- Completions
- Hover
- Paremeter Hints
- Find References
- Run/Debug
- Find Implementations
- Rename Symbol
- Code Actions
- Document Symbols
- Formatting
- Folding
- Organize Imports
Maintainers
This module has no dedicated maintainers. Become a maintainer?
Module flags
- +lsp
-
Enable LSP support for
scala-mode
. Requires doom-module::tools lsp and a langserver (supports metals). - +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.
Hacks
No hacks documented for this module.
TODO Changelog
This module does not have a changelog yet.
Installation
Enable this module in your doom!
block.
+lsp
Integration
To set up LSP support for Scala you'll need the Metals LSP server. To install it you need Coursier installed first:
Coursier
Coursier is only required to install Metals. If you're on Arch linux this step can be 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 Linux
yay -S coursier
Metals
Ubuntu / Debian / Fedora / MacOS
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 -f
Arch Linux
yay -S metals
Formatter
Formatting is handled using the doom-module::editor format module via scalafmt.
TODO Usage
This module has no usage documentation yet. Write some?
TODO Configuration
This module has no configuration documentation yet. Write some?
Troubleshooting
- 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
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
This module has no appendix yet. Write one?