Hacker News new | ask | show | jobs
by cschmatzler 969 days ago
This post is missing one huge point: its tooling is bad. Like, real bad. The language server will regularly crash, does not support code actions _at all_, messes up formatting regularly by ignoring the configuration. Then credo, the popular linter, will tell you that your imports are not alphabetically ordered but there’s no fix mode, meaning you’ll go back to order them yourself. I love the language, am using it during my day job right now, and have published multiple libraries, but the development experience can be infuriating.
5 comments

I also develop Elixir professionally and I find the tooling to be excellent. I've seen some transient language server crashes[1] - but I wouldn't call it common? I personally dislike Credo, but it's very customizable, and you can simply remove the "alias order" readability check[2].

[1] https://elixirforum.com/t/elixir-ls-error-undefinedfunctione...

[2] https://hexdocs.pm/credo/Credo.Check.Readability.AliasOrder....

I find the tooling excellent. `mix` just works, and `alchemist` mode in emacs provides everything I could imagine needing. I've never heard of credo, but adding a call to `elixir-format` on save solves any linting needs I've had.
I’ve been writing Elixir for years and I can’t even think of the last time I had a language server crash…

Plus, these days there are many alternate LSP implementations besides Elixir LS:

https://github.com/lexical-lsp/lexical

https://github.com/elixir-tools/next-ls

Works fine for me under vim with elixir_ls and mix format.