These past few days, I’ve tried switching from Neovim to Helix, and so far the experience has been great. Compared to neovim, which requires multiple plugins and configurations, Helix requires very little configuration to start using it for Elixir. Plus, it has a great shortcut key prompts, so if you’ve used vim before, you can quickly get used to it.
In addition to its out-of-the-box features, one of my favorite features of Helix is its multi-selection editing!
Prerequisites:
Ensure that elixir-ls is installed and in your path. On macOS, you can use brew install elixir-ls.
Put the following configuration in .config/helix/languages.toml, and happy coding!
@OvermindDL1 posted about it last year on DT, I gave it a quick go but didn’t have time to use it much after that, it seemed quite basic at the time tho.
It is possible because their syntax highlighting uses tree-sitter.
Furthermore, I suggest updating the Elixir configuration to support specific features of the language server in heex. Additionally, I discovered that my understanding of the “injection-regex” configuration item was incorrect, and we may not require it.
Based on current usage, LSP can function normally with Umbrella projects.
I conducted a test using an Umbrella app named “hello” with a subproject at “hello/apps/world”. Only “hello/apps/world/.elixir_ls” was generated, and it seems that “hello/.elixir_ls” was not generated.
I guess that elixir-ls has implemented support for Umbrella projects, even though “mix.exs” exists in the directory.
to my languages.toml file but helix did not seem to find it.
helix did not seem to read languages.toml but hx --health elixir still confirms elixir-ls is configured.
Luke Pighetti on youtube https://www.youtube.com/@LukePighetti/videos uses a ~/.config/helix/config.toml file for helix configuration… I added the [[language]] block to config.toml but helix still did not like that…
❯ hx --health elixir
Configured language server: elixir-ls
Binary for language server: /opt/homebrew/bin/elixir-ls
Configured debug adapter: None
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓
but I still dont get helix showing acces to elixir docs when I press space k while on an elixir function.
Well maybe that’s what you meant, but here you mention elixirls whereas in your config it’s elixir-ls, with a hyphen. In my config it’s without a hyphen.
So both the config and the binary are fine, good. When you open a .ex file in an Elixir project dir in Helix, and type command :lsp-restart, what do you see in the lower-left corner?