[ANN] Julia Snail, an Emacs development environment — version 1.1.0 release

In March 2020, I announced an early version of Julia Snail, an Emacs development environment for Julia. A lot of work has gone into Snail since then, and it has matured tremendously. Today, I released version 1.1.0, with several major additions:

  • Julia multimedia support — render plots without leaving the comfort of Emacs.
  • Support for remote REPLs over SSH.
  • A vastly improved code awareness engine — Snail now uses CSTParser to understand code, replacing the original version’s slow and buggy parser. This makes cross-references and autocomplete more reliable than previously.

Many thanks to everyone who contributed to Snail by submitting bug reports, feature suggestions, and especially code!

19 Likes

I hope this project will get the support it deserves.

I have been using Atom for the last 2 years for all my Julia dev. Apart from some intermittent problems when code was executing fine in the REPL but not in Atom (due to Atom julia packages messing up with the julia session) I was very happy with it : code completion was working as well in the editor as in the REPL, source code navigation was working fine (from the editor and from the REPL).
Now Juno is being discontinued and we are encouraged to work with VSCode.
I have tried for a few days and as of today it is not a viable option for someone like me that does julia development 100% of his time. There are too many problems especially with code completion and code navigation.

I find that the pitfall of the julia extensions for IDEs is that they they fail in reproducing the robustness of the REPL. I wonder if the culprit is LanguageServer.jl.

An emacs based julia IDE might be a savior. My personal need is minimal:

  • Code completion in the editor
  • Code execution from the editor
  • Code navigation from the editor
  • Code navigation from the REPL (from the error messages)
  • Variable display in the editor with folding capabilities (like in Atom)

Is Snail based on LanguageServer.jl or you have tried another approach?

1 Like

I am not the author of the package, but I have been using Julia Snail for several months now. It’s not based on LanguageServer.jl and I believe currently has all the features you’re needing, excepting the variable display. I really like it.

3 Likes