3.7 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
Warning: enabling the LSP functionality within this package can cause emacs to hang for significant lengths of time when opening a Julia file. See tip below on using PackageCompiler.jl to mitigate this issue.
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:
- Add
lsp
todotspacemacs-configuration-layers
. - Install
LanguageServer.jl
by invokingPkg.add("LanguageServer")
in the Julia REPL. - Enable layer integration with lsp as described in section below.
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. To mitigate this issue, you can try compiling LanguageServer.jl
ahead of time using PackageCompiler.jl
. This drastically reduces startup time
if successful:
julia> Pkg.add("PackageCompiler")
julia> using PackageCompiler
julia> compile_package("LanguageServer")
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)))
This layer also includes experimental support for lsp-mode
. To enable language
server functionality with this layer, follow the instructions for installation,
and then install this layer with:
Warning: LanguageServer.jl
has not yet been released for Julia 1.0. If using
this layer with Julia 1.0, julia-mode-enable-lsp
should be set to nil
.
(setq-default
dotspacemacs-configuration-layers
'(
(julia :variables julia-mode-enable-lsp t)))
Key bindings
Key Binding | Description |
---|---|
SPC m h h |
Calls @doc macro on symbol under cursor. |
SPC m e m |
Expands macro under cursor. |
SPC m w |
Calls workspace() in Repl to give clean namespace. |
SPC e l |
Expands latex macro (e.g. \delta ). |
SPC m s b |
Sends buffer to REPL. |
SPC m s l |
Sends line to REPL. |
SPC m s r |
Sends region to REPL. |
SPC m r |
Brings up Julia Repl (starts new one or focuses existing). |