lang/julia: improve lsp support (#4012)
* lang/julia: include lsp-julia w/o language server Use nonrecursive clone to get lsp-julia without bundled LanguageServer.jl (plus dependencies) and include instructions in the README on how to install the language server (bundled or otherwise). * lang/julia: add checks for julia +lsp in doctor Add two checks, both only for when the +lsp feature is enabled: - Check if (:tools lsp) is selected - Check if LanguageServer.jl is installed * lang/julia: indicate SymbolServer.jl as dependency It is itself a dependency of LanguageServer.jl, but it's necessary to add it separately in order to do `using SymbolServer`. * tools/lsp: add julia language server to list * lang/julia: add eglot support using eglot-jl Forcing eglot-jl to not install its own LanguageServer.jl is a bit of a hack though. * lang/julia: make timeout increase buffer-local Suggestion by @benneti to use `setq-local` instead of `setq` to prevent a timeout increase in non-Julia eglot buffers. * Fix issues Co-authored-by: Henrik Lissner <henrik@lissner.net>
This commit is contained in:
parent
88e18fc7c1
commit
ba0f791b05
6 changed files with 109 additions and 26 deletions
19
modules/lang/julia/doctor.el
Normal file
19
modules/lang/julia/doctor.el
Normal file
|
@ -0,0 +1,19 @@
|
|||
;;; lang/julia/doctor.el -*- lexical-binding: t; -*-
|
||||
|
||||
(assert! (or (not (featurep! +lsp))
|
||||
(featurep! :tools lsp))
|
||||
"This module requires (:tools lsp)")
|
||||
|
||||
(when (featurep! +lsp)
|
||||
(let ((args
|
||||
(cond ((require 'eglot-jl nil t)
|
||||
`(,eglot-jl-julia-command
|
||||
,(concat "--project=" eglot-jl-language-server-project)
|
||||
,@eglot-jl-julia-flags
|
||||
"-e" "empty!(LOAD_PATH); push!(LOAD_PATH, \"@\"); using LanguageServer, SymbolServer"))
|
||||
((require 'lsp-julia nil t)
|
||||
`(,lsp-julia-command
|
||||
,@lsp-julia-flags
|
||||
"-e" "using LanguageServer, SymbolServer")))))
|
||||
(unless (zerop (car (apply #'doom-call-process args)))
|
||||
(warn! "Couldn't find LanguageServer.jl and/or SymbolServer.jl"))))
|
Loading…
Add table
Add a link
Reference in a new issue