Julia support for the =lsp-mode= package using the LanguageServer.jl package.
For information on the features lsp-mode
provides see their git repository.
Julia version 1.7 or higher has to be in your path
This package is still under development.
lsp-julia
installs LanguageServer.jl
by default.
By default the newest Version of LanguageServer.jl
is installed. To Change the
version, open Julia and initiate the Environment in the subdirectory
languageserver
from the installation directory of lsp-julia
. Then use
Julia’s Pkg
to change the installed version.
Add the following to you config:
(setq lsp-julia-package-dir nil)
(setq lsp-julia-flags `("-J/path/to/languageserver.so"))
;; (require 'lsp-julia) must come after this!
Additionally because JIT compilation of LanguageServer.jl
can cause a long delay
which may cause issues with lsp-mode, I recommend using PackageCompiler.jl to
AOT compile LanguageServer.jl
into your julia image. Something like:
julia> using Pkg julia> Pkg.add("PackageCompiler") julia> using PackageCompiler julia> create_sysimage(:LanguageServer, sysimage_path="/path/to/languageserver.so")
See the documentation on PackageCompiler.jl
for further usage details.
It’s currently easiest to install this package with quelpa. I’ll see about getting this added to melpa soon enough.
(quelpa '(lsp-julia :fetcher github
:repo "gdkrmr/lsp-julia"
:files (:defaults "languageserver")))
(use-package lsp-julia
:config
(setq lsp-julia-default-environment "~/.julia/environments/v1.7"))
After installing the major mode of your choice for editing Julia files
(julia-mode, ess, etc.), add 'lsp-mode
to the hook for that major mode. For
example, to use lsp-julia
with ess, add the following to your .emacs
file:
(add-hook 'ess-julia-mode-hook #'lsp-mode)
Please don’t hesitate to open an issue in case of problems or create a PR.