Files
doomemacs/modules/lang/scala
Henrik Lissner 1bb191e8eb bump: :lang
FStarLang/fstar-mode.el@6e5d3ea858 -> FStarLang/fstar-mode.el@36ffb46259
ProofGeneral/PG@d668946929 -> ProofGeneral/PG@e0ec3db200
Wilfred/helpful@4ba24cac9f -> Wilfred/helpful@5ad8a9ce57
agda/agda@3344ca8058 -> agda/agda@10a0ca0516
bastibe/org-journal@17b34ce8df -> bastibe/org-journal@115b9c0354
beancount/beancount-mode@452621fa1f -> beancount/beancount-mode@ddd4b87257
clojure-emacs/cider@f00e83d338 -> clojure-emacs/cider@a0d6169026
crystal-lang-tools/emacs-crystal-mode@ea89b108fa -> crystal-lang-tools/emacs-crystal-mode@d913fea6f0
emacs-ess/ESS@c72b911d70 -> emacs-ess/ESS@0eb240bcb6
emacs-geiser/geiser@74eed1669a -> emacs-geiser/geiser@c1c27072a4
emacs-lsp/lsp-haskell@6981f8d122 -> emacs-lsp/lsp-haskell@b2edf1a9f8
emacs-lsp/lsp-metals@6a6a345a8a -> emacs-lsp/lsp-metals@567089f7f4
emacs-rustic/rustic@e5c0271f1e -> emacs-rustic/rustic@fbbf0a7192
emacs-straight/auctex@f00256cbfd -> emacs-straight/auctex@53f80ba36c
emacs-straight/org-mode@5a4686915e -> emacs-straight/org-mode@ff33d9ec2e
emacs-typescript/typescript.el@dd10f702d4 -> emacs-typescript/typescript.el@481df3ad2c
emacsorphanage/dart-mode@02e919c1cf -> emacsorphanage/dart-mode@88b6683f43
emacsorphanage/macrostep@44faf4f7bf -> emacsorphanage/macrostep@d0928626b4
erlang/otp@3e7f126fe4 -> erlang/otp@64185e73b0
fuxialexander/org-pdftools@4e420233a1 -> fuxialexander/org-pdftools@5613b7ae56
greghendershott/racket-mode@f2645aadd2 -> greghendershott/racket-mode@eef5e9ab2c
hakimel/reveal.js@e15cf92ccd -> hakimel/reveal.js@2059d388f7
haskell/haskell-mode@1a285fc4c5 -> haskell/haskell-mode@7f452cc9e6
joaotavora/sly@742355f755 -> joaotavora/sly@c48defcf58
jorgenschaefer/emacs-buttercup@bf01a33f8b -> jorgenschaefer/emacs-buttercup@c467c659b2
jrblevin/markdown-mode@e100778594 -> jrblevin/markdown-mode@ee9d6de1d2
js-emacs/js2-refactor.el@a0977c4ce1 -> js-emacs/js2-refactor.el@e1177c728a
kaushalmodi/ox-hugo@98421a1298 -> kaushalmodi/ox-hugo@e3365cb4e6
ljos/jq-mode@a0f79eba78 -> ljos/jq-mode@eeb86b4d5a
magit/orgit@59d21fdb21 -> magit/orgit@3b6b34bd11
nonsequitur/inf-ruby@dad78a13f1 -> nonsequitur/inf-ruby@b8076aad10
ocaml/dune@098117d229 -> ocaml/dune@b74586e909
ocaml/merlin@3a806ef87f -> ocaml/merlin@92c3ba9473
oer/org-re-reveal@ab1422c163 -> oer/org-re-reveal@88e9d9e679
org-roam/org-roam@cad3518788 -> org-roam/org-roam@0037daaf3e
purescript-emacs/purescript-mode@07e4d6ecfe -> purescript-emacs/purescript-mode@b076bafe94
pythonic-emacs/anaconda-mode@f900bd7656 -> pythonic-emacs/anaconda-mode@5c6eff4645
pythonic-emacs/company-anaconda@169252fca7 -> pythonic-emacs/company-anaconda@0f7984b3be
pythonic-emacs/pyenv-mode@76787ea44f -> pythonic-emacs/pyenv-mode@f7d53796d6
seagle0128/grip-mode@df0ba7589d -> seagle0128/grip-mode@ffce7f78eb
swift-emacs/swift-mode@ab189d6e89 -> swift-emacs/swift-mode@2c0b2b72dc
technomancy/fennel-mode@3632cc77de -> technomancy/fennel-mode@4ccb6d5944
weijiangan/flycheck-golangci-lint@91c59b128a -> weijiangan/flycheck-golangci-lint@424ba1b3a1
2025-02-21 18:35:11 -05:00
..
2025-02-21 18:35:11 -05:00

: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

Report an issue?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?