elixirls
https://github.com/elixir-lsp/elixir-ls
elixir-ls can be installed by following the instructions here.
curl -fLO https://github.com/elixir-lsp/elixir-ls/releases/latest/download/elixir-ls.zip
unzip elixir-ls.zip -d /path/to/elixir-ls
# Unix
chmod +x /path/to/elixir-ls/language_server.sh
By default, elixir-ls doesn't have a cmd set. This is because nvim-lspconfig does not make assumptions about your path. You must add the following to your init.vim or init.lua to set cmd to the absolute path ($HOME and ~ are not expanded) of your unzipped elixir-ls.
require'lspconfig'.elixirls.setup{
-- Unix
cmd = { "/path/to/elixir-ls/language_server.sh" };
-- Windows
cmd = { "/path/to/elixir-ls/language_server.bat" };
...
}
Setup
require'lspconfig'.elixirls.setup{}
Default values
filetypes = { "elixir", "eelixir" }
root_dir = function(fname)
return util.root_pattern('mix.exs', '.git')(fname) or vim.loop.os_homedir()
end,
Available settings
elixirLS.dialyzerEnabled
- Type:
boolean - Default:
true
Run ElixirLS\'s rapid Dialyzer when code is saved
elixirLS.dialyzerFormat
- Type:
enum { "dialyzer", "dialyxir_short", "dialyxir_long" } - Default:
"dialyzer"
Formatter to use for Dialyzer warnings
elixirLS.dialyzerWarnOpts
- Type:
array - Default:
{} - Array items:
Dialyzer options to enable or disable warnings. See Dialyzer\'s documentation for options. Note that the \"race_conditions\" option is unsupported
elixirLS.fetchDeps
- Type:
boolean - Default:
true
Automatically fetch project dependencies when compiling
elixirLS.mixEnv
- Type:
string - Default:
"test"
Mix environment to use for compilation
elixirLS.projectDir
- Type:
string
Subdirectory containing Mix project if not in the project root
elixirLS.suggestSpecs
- Type:
boolean - Default:
true
Suggest \@spec annotations inline using Dialyzer\'s inferred success typings (Requires Dialyzer)