doomemacs/modules/lang/julia
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
autoload.el
config.el fix(:lang): missing grammar recipes 2025-08-31 14:39:38 +02:00
doctor.el
packages.el bump: :lang 2026-02-13 16:31:15 -05:00
README.org docs: discourage after! and use-package! use 2026-02-09 04:29:47 -05:00

:lang julia

Description   unfold

This module adds support for the Julia language to Doom Emacs.

Maintainers

This module has no dedicated maintainers. Become a maintainer?

Module flags

+lsp
Enable LSP support for julia-mode. Requires doom-module::tools lsp and a langserver (supports LanguageServer.jl).
+tree-sitter
Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.
+snail
Use Snail, a development environment and REPL interaction package for Julia in the spirit of Common Lisps SLIME and Clojures CIDER. It enables convenient and dynamic REPL-driven development.

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.

This module requires Julia and an language server if doom-module:+lsp is enabled.

Language Server

doom-module:+lsp requires LanguageServer.jl and SymbolServer.jl. The doom-package:lsp-julia and doom-package:eglot-jl packages both come bundled with their own versions of these servers, which is used by default. If you're happy with that, no further configuration is necessary.

However, to use your own installation you will need to install then configure them. To install them, execute these commands in a Julia REPL:

using Pkg
Pkg.add("LanguageServer")
Pkg.add("SymbolServer")

Then configure doom-package:lsp-julia or doom-package:eglot-jl depending on whether you have enabled [[doom-module::tools lsp]] or doom-module::tools lsp +eglot, respectively:

lsp-julia

To instruct doom-package:lsp-julia not to use the built-in package:

;; in $DOOMDIR/config.el
(setq lsp-julia-package-dir nil)

To find your installation of LanguageServer.jl, doom-package:lsp-julia needs to know the environment in which it is installed. This is set to v1.6 by default as it is the current LTS:

;; in $DOOMDIR/config.el
(with-eval-after-load 'lsp-julia
  (setq lsp-julia-default-environment "~/.julia/environments/v1.6"))

eglot-jl

To find your installation of LanguageServer.jl, doom-package:eglot-jl must know the environment in which it is installed. This is set to v1.6 by default as it is the current LTS:

;; in $DOOMDIR/config.el
(setq eglot-jl-language-server-project "~/.julia/environments/v1.6")

But to let doom-package:eglot-jl use the environment bundled with it, set it to eglot-jl-base instead:

;; in $DOOMDIR/config.el
(with-eval-after-load 'eglot-jl
  (setq eglot-jl-language-server-project eglot-jl-base))

TODO Usage

󱌣 This module's usage documentation is incomplete. Complete it?

Language Server

doom-module:+lsp adds code completion, syntax checking, formatting and other doom-package:lsp-mode or doom-package:eglot features. It requires LanguageServer.jl, the installation of which is described above.

Snail

Keybind Command
<localleader> ' julia-snail
<localleader> a julia-snail-package-activate
<localleader> r julia-snail-update-module-cache
<localleader> d julia-snail-doc-lookup
<localleader> e b julia-snail-send-buffer-file
<localleader> e l julia-snail-send-line
<localleader> e r julia-snail-send-region
<localleader> e e julia-snail-send-dwim

TODO Configuration

󱌣 This module's configuration documentation is incomplete. Complete it?

Change the default environment for the Julia language server

doom-package:lsp-julia requires a variable be set for the Julia environment. This is set to v1.6 by default as it is the current LTS:

;; in $DOOMDIR/config.el
(with-eval-after-load 'lsp-julia
  (setq lsp-julia-default-environment "~/.julia/environments/v1.6"))

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?