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
Thanh Vuong 902d210361 [auto-completion][julia] Revert #15171, Proper fix for #15169
This reverts commit f2755533de.

This adds fix for julia layer breaking yasnippet setup.

Commit f2755533de fixed a specific bug in julia
layer but it loads yasnippet and friends on start up which adds 1 sec to my
startup time even though I don't use julia.

Julia layer loads lsp-julia early on startup, which loads lsp who then loads
yasnippet behind the scene unknown to spacemacs and use-package. That's why our
nice and ordered setup for yasnippet and yasnippet-snippets failed as discussed
in https://github.com/syl20bnr/spacemacs/pull/15171. We now tell use-package to
defer its load.
2021-12-30 18:35:37 +01:00
..
img
config.el
funcs.el
layers.el
packages.el [auto-completion][julia] Revert #15171, Proper fix for #15169 2021-12-30 18:35:37 +01:00
README.org

julia layer

/TakeV/spacemacs/media/commit/abc028e24eea06d967d8c077c483dffc29f93f61/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-backend 'lsp)))

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