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:
Han 2021-03-02 04:25:35 +01:00 committed by GitHub
parent 88e18fc7c1
commit ba0f791b05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 109 additions and 26 deletions

View file

@ -3,3 +3,8 @@
(package! julia-mode :pin "8ea90c7927f6d87a291cfb0216f34dacf43c722e")
(package! julia-repl :pin "7ce38a9caf2a9c105afe66f464a2f30e816d69f3")
(when (featurep! +lsp)
(if (featurep! :tools lsp +eglot)
(package! eglot-jl :pin "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9")
(package! lsp-julia :recipe (:nonrecursive t) :pin "c523c250c4bd2777203101ab417e9b7312472f46")))