6 KiB
julia layer
Description
This layer adds support for Julia to Spacemacs.
Features:
- Syntax highlighting
- Repl support
- Linting
- Completion
- Jump-to-definition
- Documentation on hover
Install
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add julia
to the existing dotspacemacs-configuration-layers
list in this
file.
LSP
This layer can be used with LanguageServer.jl and Emacs lsp-mode to provide richer, IDE-like capabilities. To use this layer with lsp, you must do the following:
LanguageServer.jl
should be configured automatically, if not, see the documentation oflsp-julia
.- define the layer variable
julia-backend
tolsp
in your dotfile
To enable language server functionality with this layer, follow the instructions for installation, and then install this layer with:
(setq-default
dotspacemacs-configuration-layers
'(
(julia :variables julia-mode-enable-lsp t)))
Warning: LanguageServer.jl has not yet been released for Julia 1.0. If you are
using this layer with Julia 1.0, julia-mode-enable-lsp
should be set to nil
.
LanguageServer.jl
tends to have a very long startup time. In the worst case,
lsp-mode
might give up on the language server before its started, but
regardless usage of lsp-mode
with Julia can cause long delays when first
opening files.
Options
While julia-mode
is perfectly usable without configuration or other packages,
you can choose to replace the default functionality of using julia-repl as the
layer's interactive REPL with the ess REPL and other functionality that comes
with it. To do so, install this layer with:
(setq-default
dotspacemacs-configuration-layers
'(
(julia :variables julia-mode-enable-ess t)))
Key bindings
Key binding | Description |
---|---|
TAB |
Expands latex macro (e.g. \delta ). |
SPC m l |
Expands latex macro (e.g. \delta ). |
SPC m = = |
Indent line |
SPC m = d |
Deindent line |
SPC m = q |
Indent Sexp |
SPC m ' |
Brings up Julia Repl (starts new one or focuses existing). |
SPC m r |
Brings up Julia Repl (starts new one or focuses existing). |
SPC m h h |
Calls @doc macro on symbol under cursor. |
SPC m s a |
Activate the project of the current buffer (call with prefix to activate home project) |
SPC m s d |
cd into the buffer directory |
SPC m s i |
Brings up Julia Repl (starts new one or focuses existing). |
SPC m s b |
Sends buffer to REPL. |
SPC m s t |
Sends buffer to REPL via Revise.includet . |
SPC m s l |
Sends line to REPL. |
SPC m s s |
Sends line to REPL. |
SPC m s r |
Sends region or line to REPL. |
SPC m s m |
Call @macroexpand on an expression |
SPC m s e |
Call @edit on an expression |
SPC m s v |
Prompt and set a Julia REPL inferior buffer name for the current buffer |
SPC m e a |
Activate the project of the current buffer (call with prefix to activate home project) |
SPC m e d |
cd into the buffer directory |
SPC m e i |
Brings up Julia Repl (starts new one or focuses existing). |
SPC m e b |
Sends buffer to REPL. |
SPC m e t |
Sends buffer to REPL via Revise.includet . |
SPC m e l |
Sends line to REPL. |
SPC m e s |
Sends line to REPL. |
SPC m e r |
Sends region or line to REPL. |
SPC m e m |
Call @macroexpand on an expression |
SPC m e e |
Call @edit on an expression |
SPC m e v |
Prompt and set a Julia REPL inferior buffer name for the current buffer |