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.