This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/julia/README.org

6 KiB

julia layer

/TakeV/spacemacs/media/commit/65b4cd9ed4dbc64acddc310cd90ed575f63b5e7a/layers/+lang/julia/img/julia.png

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:

  1. LanguageServer.jl should be configured automatically, if not, see the documentation of lsp-julia.
  2. define the layer variable julia-backend to lsp 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