doomemacs/modules/lang/scala
Henrik Lissner e77a45bc22
docs: use lowercase keywords
As per Org's new defaults, which we're adopting elsewhere, so may as
well adopt it here.
2022-08-02 16:23:43 +02:00
..
autoload.el check if buffer exists and not alive before kill 2021-02-20 09:37:55 -05:00
config.el Disable lsp indentation in scala mode 2020-10-27 09:28:11 -04:00
doctor.el lang/scala: replace ensime with metals 2019-10-02 10:38:11 +03:00
packages.el bump: :lang 2021-09-15 01:22:33 +02:00
README.org docs: use lowercase keywords 2022-08-02 16:23:43 +02:00

:lang scala

Back to module index ! Issues ↖ Github ± Suggest edits ? Help


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 :tools lsp and a langserver (supports metals).
+tree-sitter
Leverages tree-sitter for better syntax highlighting and structural text editing. Requires :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-emacs -f
Arch Linux
yay -S metals

TODO Usage

🔨 This module has no usage documentation yet. Write some?

TODO Configuration

🔨 This module has no configuration documentation yet. Write some?

Troubleshooting

Report an issue?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

🔨 This module has no appendix yet. Write one?