Emacs Elixir lsp-mode broken

Hi All,

I’m not sure what happened but my Elixir LSP (in emacs) has stopped working ( I haven’t done anything to my .emacs file), it tries to restart with the error:

Server elixir-ls:2340/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n)

but then immediately stops working. I am using Elixir 1.16.0 and Erlang/OTP 26. Checking stderr per the recommendations I’m met with

Running /Users/canaan/.emacs.d/.cache/lsp/elixir-ls/launch.sh
Preffered shell is zsh, relaunching
Looking for ASDF install
ASDF not found
Looking for rtx executable
rtx not found
Installing ElixirLS release v0.16.0
Running in /Users/USER/Desktop/Workbench
Mix.install failed with ** (ArgumentError) unknown keys [:stop_started_applications] in [force: false, start_applications: false, stop_started_applications: false, consolidate_protocols: false], the allowed keys are: [:config, :config_path, :consolidate_protocols, :elixir, :force, :lockfile, :runtime_config, :start_applications, :system_env, :verbose]
    (elixir 1.16.0) lib/keyword.ex:359: Keyword.validate!/2
    (mix 1.16.0) lib/mix.ex:819: Mix.install/2
    /Users/USER/.emacs.d/.cache/lsp/elixir-ls/installer.exs:526: ElixirLS.Installer.install/1
    /Users/USER/.emacs.d/.cache/lsp/elixir-ls/installer.exs:543: ElixirLS.Installer.install_with_retry/0
    /Users/USER/.emacs.d/.cache/lsp/elixir-ls/quiet_install.exs:14: (file)
    (elixir 1.16.0) src/elixir_compiler.erl:67: :elixir_compiler.dispatch/4
    (elixir 1.16.0) src/elixir_compiler.erl:52: :elixir_compiler.compile/4
    (elixir 1.16.0) src/elixir_compiler.erl:39: :elixir_compiler.maybe_fast_compile/3

I appreciate if anyone has seen this error before and has any solutions. I’ve installed asdf, but it was working just fine before, is there some chance it’s a simple error and I’m not launching the server from the right directory? And if that is the case what is the simple fix?

Thanks again!

You need to upgrade to ElixirLS 0.18 or greater for Elixir 1.16.0 support:

Hello,

I have downloaded the latest per instructions at : 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" , and updated my .emacs with the suggested:

;; Install required packages if you haven’t already
(use-package lsp-mode
:commands lsp
:ensure t
:diminish lsp-mode
:hook (elixir-mode . lsp)
:init
(add-to-list 'exec-path “~/Desktop/Workbench”))

I have (use-package elixir-mode :ensure t) later in the file. The same error persists, is there anything important about the path that should be changed that isn’t covered in the docs?

Thanks!

Hi All!

In case anyone find this and is stuck in the future, I’ve solved it for my particular case.

Instead of using the 'exec-path, moving the files from the latest lsp (18 in this case) to the ~/.emacs.d/.cache/lsp/elixir-ls/ solved the problem.

Just make sure to remove conflicting files. (I’m sure there is a more elegant way to do this, but this solves it).

I had the same problem, thanks for the solution.
Very strange that emacs insists on using the cache location. I tried deleting the .emacs.d/.cache/lsp/elixir-ls before, and somehow it just pulled the same thing from github into that cache folder-- some version 0.16 of elixir-ls. Good idea to just put an updated build there.