Issues with ElixirLS: Elixir sources not found and error while running own Elixir LS Version

Hello everyone,

I have two problems with Elixir LS. In the image you can see both problems/questions. I’m using VSCode and the Elixir LS extension. The screenshot is from my Phoenix project. I’ve installed Erlang and Elixir through asdf.

Question 1

The last line says: Elixir sources not found and I’m wondering if it is possible to change the path in the info message? I’m not sure why the path is /home/build/elixir.

Question 2

I’m missing some intellisense features in VSCode and I was hoping to solve it with compiling Elixir LS with the same Elixir and Erlang version, I’m using. So I was following this guide: Fix: VSCode + ElixirLS Intellisense for code imported with `use` - Dragosh Mocrii

The compilation was successful but I get a JsonRPC error while checking the Output Panel of the VSCode console. This error is already mentioned in the trouble shooting page of Elixir LS: GitHub - elixir-lsp/elixir-ls: A frontend-independent IDE "smartness" server for Elixir. Implements the "Language Server Protocol" standard and provides debugger support via the "Debug Adapter Protocol"

Unfortunately I was unable to find a fix…


Regarding question 1:
I had to clone the elixir repo into /home/builds/elixir: GitHub - elixir-lang/elixir at v1.12.3

for question 2 problem:

Vscode elixir introduced setting languageServerOverridePath. You could find it in vscode settings ElixirLS.
This setting can be configured per workspace, so each project will have its own elixirLS release, which is handy if you’re using asdf for elixir installation and have different elixir versions per project.

Basically, you need to download ElixirLS precompiled release for desired elixir version from here
Releases · elixir-lsp/elixir-ls · GitHub and upzip it to some directory. Then use absolute path to that directory to set languageServerOverridePath setting. Then remove .elixir_ls and _build directories in your project and restart VsCode.
Every time, when vscode elixir ls extension upgrades ElixirLS version, you’ll need to download a new release and repeat all the above.

IMO, it’s better than compiling ElixirLS manually and replacing it in vscode extensions.

1 Like

languageServerOverridePath may no longer be useful. Since v0.14 the extension uses Mix.install which builds and installs elixirLS using the correct elixir and OTP combo