Mise-elp & asdf-elp - mise tool plugin for elp

I am working on several Erlang projects/libraries on different OTP versions and use ELP. It is a great LSP tool. But for me, there is a little inconvenient to switch elp for different OTP versions.

The elp team uses dates as its release versions, which causes existing tools like mise or other hard to manage with simple configuration. And in practice, the elp version command does not provide the OTP version information it related to. Sometimes when I switch between different Erlang projects with wrong elp version in the PATH, it causes issues.

So I wrote a mise-elp plugin to manage it. Just simply add the following config in .mise.toml in the project, mise will help us to switch the correct elp version:

[tools]
elp = "otp-27"

If you are using asdf, there is a similar plugin for it: asdf-elp.

Hope they help.

6 Likes

Well done! Hope you don’t mind I’ll be looking to steal this for beamup :). Beamup supports installing elp but has no way to switch them based on OTP version. I want to do similar for Elixir and Gleam since right now they simply assume you also switch OTP versions yourself if you switch to an Elixir or Gleam that is built only for specific range of versions.

1 Like

Of course, I don’t mind. It’s great to hear that if beamup can handle this.