hermes - 💡(How to fix) Fix [Feature]: Use `expert` instead of `elixir-ls` as an Elixir LSP

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fix / Workaround

I decided not to look into it much as it's quite complicated and would require patching the source. Instead, as I'm using NixOS, I just symlinked expert as elixir-ls into Hermes's container with some obvious patches to make it work (e.g. adding --stdio):

    {
      name = "elixir-ls";
      pkg = pkgs.writeShellScriptBin "elixir-ls" ''
        exec ${expert-lsp.packages.${pkgs.system}.default}/bin/expert --stdio "$@"
      '';
    }

I think it'd be nice if we just replaced elixir-ls with expert altogether so Elixir users won't need to jump through hoops

Code Example

{
      name = "elixir-ls";
      pkg = pkgs.writeShellScriptBin "elixir-ls" ''
        exec ${expert-lsp.packages.${pkgs.system}.default}/bin/expert --stdio "$@"
      '';
    }

---
RAW_BUFFERClick to expand / collapse

Problem or Use Case

Currently, elixir-ls doesn't work as intended - it just returns empty diagnostics

Proposed Solution

I decided not to look into it much as it's quite complicated and would require patching the source. Instead, as I'm using NixOS, I just symlinked expert as elixir-ls into Hermes's container with some obvious patches to make it work (e.g. adding --stdio):

    {
      name = "elixir-ls";
      pkg = pkgs.writeShellScriptBin "elixir-ls" ''
        exec ${expert-lsp.packages.${pkgs.system}.default}/bin/expert --stdio "$@"
      '';
    }

I think it'd be nice if we just replaced elixir-ls with expert altogether so Elixir users won't need to jump through hoops

Alternatives Considered

Just fixing elixir-ls. But I personally don't think this is a viable solution, as expert is stable now and is considered to be "the official Elixir LSP". While elixir-ls does have some features that one might deem useful, they aren't used by Hermes at all, so it'll be a drop-in replacement.

Another alternative would be both fixing elixir-ls (which again I'm unsure why it doesn't work) and adding expert as an alternative option. This is a viable solution, but it might be slightly confusing.

Feature Type

Configuration option

Scope

Small (single file, < 50 lines)

Contribution

  • I'd like to implement this myself and submit a PR

Debug Report (optional)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix [Feature]: Use `expert` instead of `elixir-ls` as an Elixir LSP