[[https://melpa.org/#/lsp-julia][file:https://melpa.org/packages/lsp-julia-badge.svg]] [[https://stable.melpa.org/#/lsp-julia][file:https://stable.melpa.org/packages/lsp-julia-badge.svg]]
Julia support for the [[https://github.com/emacs-lsp/lsp-mode][=lsp-mode=]] package using the [[https://github.com/JuliaEditorSupport/LanguageServer.jl][LanguageServer.jl]] package. For information on the features =lsp-mode= provides see their [[https://github.com/emacs-lsp/lsp-mode][git repository]].
/Julia version 1.7 or higher has to be in your path/
/This package is still under development./
** Installation * Installing the Julia Language Server ** Included Language Server ~lsp-julia~ installs ~LanguageServer.jl~ by default.
**** Change Language Server version 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.
**** Using a Compiled LanguageServer.jl Image
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 [[https://github.com/JuliaLang/PackageCompiler.jl][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.
* Installing =lsp-julia= ** quelpa 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
(use-package lsp-julia :config (setq lsp-julia-default-environment "~/.julia/environments/v1.7"))
*** Using =lsp-julia= with a julia major mode
After installing the major mode of your choice for editing Julia files ([[https://github.com/JuliaEditorSupport/julia-emacs][julia-mode]], [[https://ess.r-project.org/][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.