584392bd92
There was a edge case with the declaration of the `lsp` layer in `layers.el` files. The `hy` layer depends on the `python` layer which in turn depends on the `lsp` layer if and only if the `python-backend` layer variable is set to `lsp`. When the `hy` layer was declared first then it declares the `python` layer without its layer variables, thus the `lsp` layer was not declared because the `python-backend` variable was not set. The fix is to gather all the layer dependencies and resolve them only after all the used layers have been declared. * new function `configuration-layer/declare-layer-dependencies` * replace all calls to `configuration-layer/declare-layer` by the new function except for distribution layers (we declare layer dependencies right away in distribution layers) |
||
---|---|---|
.. | ||
img | ||
config.el | ||
funcs.el | ||
layers.el | ||
packages.el | ||
README.org |
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
(setq-default
dotspacemacs-configuration-layers
'(
(julia :variables julia-mode-enable-lsp t)))
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 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 |