doomemacs/modules/lang/scala
Henrik Lissner c7a1e2d70c
bump: :lang
JuliaEditorSupport/julia-emacs@5c940c4ba3 -> JuliaEditorSupport/julia-emacs@aadf29523a
ProofGeneral/PG@d60382db08 -> ProofGeneral/PG@75c13f91b6
agda/agda@bb9e13d970 -> agda/agda@5cf984c3d2
ananthakumaran/exunit.el@12a1efd003 -> ananthakumaran/exunit.el@bef971bde5
ardumont/markdown-toc@29e5c0f33e -> ardumont/markdown-toc@d22633b654
babashka/neil@8d5ccdbd81 -> babashka/neil@74cc79e4b9
clojure-emacs/cider@15bd3b0265 -> clojure-emacs/cider@ae247d8845
clojure-emacs/clojure-mode@4679222109 -> clojure-emacs/clojure-mode@bddba12e96
emacs-ess/ESS@f8c464dc1b -> emacs-ess/ESS@bfe892db15
emacs-rustic/rustic@e77f62facc -> emacs-rustic/rustic@cb013cd217
emacs-straight/auctex@077874d25a -> emacs-straight/auctex@1939acb54b
erlang/otp@2b2b39797f -> erlang/otp@f80e9c1c4a
godotengine/emacs-gdscript-mode@248b73b1bd -> godotengine/emacs-gdscript-mode@dd44f1dfa5
greghendershott/racket-mode@150b057953 -> greghendershott/racket-mode@71f27c643d
hakimel/reveal.js@33bfe3b233 -> hakimel/reveal.js@5abf24c1d8
haskell/haskell-mode@383b4b7775 -> haskell/haskell-mode@2dd755a5fa
hhvm/hack-mode@86a981bd7b -> hhvm/hack-mode@0b117e7f25
hvesalai/emacs-scala-mode@661337d8aa -> hvesalai/emacs-scala-mode@50bcafa181
idris-hackers/idris-mode@85928dc4cc -> idris-hackers/idris-mode@d32b2396a8
jrblevin/markdown-mode@92802fae9e -> jrblevin/markdown-mode@9de2df5a9f
mekeor/nael@9711443449 -> mekeor/nael@3ee1cf286d
meow_king/zig-ts-mode@89b52c865c -> meow_king/zig-ts-mode@64611c6d51
minad/org-modern@9bbc44cc7e -> minad/org-modern@b4b5b1c864
nim-lang/nim-mode@625cc023bd -> nim-lang/nim-mode@4502f83fbb
nix-community/nix-ts-mode@706bbfaf7f -> nix-community/nix-ts-mode@625306cf9c
ocaml/dune@14df34d30d -> ocaml/dune@7a7d49206f
ocaml/merlin@a0b096c243 -> ocaml/merlin@1c4148af05
org-roam/org-roam@c72702cf27 -> org-roam/org-roam@b4857fd7a1
rust-lang/rust-mode@ae161dca23 -> rust-lang/rust-mode@f68ddca5c2
seagle0128/grip-mode@26bdadf604 -> seagle0128/grip-mode@b8b9e603ed
sogaiu/janet-ts-mode@0e4d04d648 -> sogaiu/janet-ts-mode@aba932a1a1
szermatt/emacs-bash-completion@762f28fefb -> szermatt/emacs-bash-completion@5b621db96e
technomancy/fennel-mode@c1bccdec9e -> technomancy/fennel-mode@9c1dac3c39
tpapp/julia-repl@681efc14a7 -> tpapp/julia-repl@0173237a43
weijiangan/flycheck-golangci-lint@f7e36e19d6 -> weijiangan/flycheck-golangci-lint@51aede797d
2026-02-13 16:31:15 -05:00
..
.doommodule feat: add .doommodule files 2024-09-14 20:47:39 -04:00
autoload.el
config.el refactor(:lang): remove fboundp checks for *-ts-modes 2025-09-01 20:11:02 +02:00
doctor.el refactor(scala): remove redundant config 2025-08-30 10:30:26 +02:00
packages.el bump: :lang 2026-02-13 16:31:15 -05:00
README.org feat(scala): add treesit support 2025-05-22 19:50:29 +02: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 Emacs 29.1+ and 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?