You should try jetls, it is awesome!

I write only to suggest to use jetls: GitHub - aviatesk/JETLS.jl: A new language server for Julia, enabling modern, compiler-powered tooling.

It is still a not complete project, but it is very useful for now. And it is working nicely in Emacs with eglot (I guess with lsp will be working also).
Previously, I tried LanguageServer, but it never working for me.

I use it with the following configuration, and it very operative and comfortable to use.

;; For julia
(with-eval-after-load 'eglot
  (add-to-list 'eglot-server-programs
               '(((julia-mode :language-id "julia")
                  (julia-ts-mode :language-id "julia"))
                 "jetls"
                 "--threads=auto"
                 "--"
                 "--socket"
                 :autoport)))

You can use several options to see the errors:

  1. I like sideline to see the error on the right:
;; For using sideline
(use-package sideline-flymake
  :ensure t
  :hook (flymake-mode . sideline-mode)
  :init
  (setq sideline-flymake-display-mode 'point) ; 'point to show errors only on point
					; 'line to show errors on the current line
  (setq sideline-backends-right '(sideline-flymake)))

In that case, you can see with the line the error

but you can use also use flyover GitHub - konrad1977/flyover: A beautiful inline overlay for Emacs (Flycheck | Flymake),

and get all errors more easily:

As you can see, it was an error in the parameter (I made that for showing the diagnostic format, my code is perfect :slight_smile: ).

I am now configuring debugging with dap-mode, and it is also very promising.

It is great to see how the tools are improving, and the LSP improvement is very useful for all IDEs (including Emacs).

14 Likes