Hi! Glad you like ElixirLS!
Some people seem to have gotten ElixirLS working in neovim, though the plugin system for neovim seems complicated and I haven’t gotten it working myself. Someone using it in neovim just posted their vimrc in an issue (now resolved), which is here in case it’s helpful: https://github.com/JakeBecker/elixir-ls/issues/76
I’m not up to date on the progress of the LanguageClient-neovim plugin, but based on your description and issues people have filed on ElixirLS, there’s a couple areas where its support for the protocol is incomplete:
- The client should send the configuration (which in VS Code is specified in
settings.json
) via theworkspace/didChangeConfiguration
request, but according to this issue the Neovim client doesn’t do that yet, so there’s no way to specify these settings. (EDIT: Actually, it looks like it does support this, though you might need to turn on a setting for it? Looks like it was added here.) - The autocomplete snippet syntax is specified here as part of the Language Server Protocol. When the server first starts up, the client sends an
initialize
request to the server which includes a parameter forclientCapabilities
, and if the client doesn’t support snippets, it should setsnippetSupport
tofalse
. I assume Neovim omits this, so ElixirLS defaults to including the snippets.
Hope that helps!
PS. The Vim emulation plugin for VS Code is pretty good, and I haven’t missed Vim since I switched to using VS Code. By complete coincidence, the Vim plugin for VS Code was written by a former roommate of mine.