39 lines
1.3 KiB
Lua
39 lines
1.3 KiB
Lua
local util = require 'lspconfig.util'
|
|
|
|
return {
|
|
default_config = {
|
|
filetypes = { 'elixir', 'eelixir', 'heex', 'surface' },
|
|
root_dir = function(fname)
|
|
return util.root_pattern 'mix.exs'(fname) or util.find_git_ancestor(fname) or vim.loop.os_homedir()
|
|
end,
|
|
},
|
|
docs = {
|
|
description = [[
|
|
https://github.com/elixir-lsp/elixir-ls
|
|
|
|
`elixir-ls` can be installed by following the instructions [here](https://github.com/elixir-lsp/elixir-ls#building-and-running).
|
|
|
|
```bash
|
|
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.
|
|
|
|
```lua
|
|
require'lspconfig'.elixirls.setup{
|
|
-- Unix
|
|
cmd = { "/path/to/elixir-ls/language_server.sh" };
|
|
-- Windows
|
|
cmd = { "/path/to/elixir-ls/language_server.bat" };
|
|
...
|
|
}
|
|
```
|
|
]],
|
|
default_config = {
|
|
root_dir = [[util.find_git_ancestor(fname) or util.root_pattern 'mix.exs'(fname) or vim.loop.os_homedir()]],
|
|
},
|
|
},
|
|
}
|