mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-08 05:24:46 +08:00
Add elixir-ls language server support
ElixirLS (https://github.com/JakeBecker/elixir-ls) is an LSP server for Elixir. It's distributed as a release package that can be downloaded from https://github.com/JakeBecker/elixir-ls/releases or built locally. The easiest way to start it is via Unix- and Win32-specific helper scripts, so that's the basis of this command integration. Alternatively, we could implement the contents of those platform-specific scripts in the linter's command callback in a language-neutral way, but there isn't any benefit to doing that aside from eliminating the platform check, and that could prove to be too tight of a coupling going forward.
This commit is contained in:
29
test/command_callback/test_elixir_ls_command_callbacks.vader
Normal file
29
test/command_callback/test_elixir_ls_command_callbacks.vader
Normal file
@@ -0,0 +1,29 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('elixir', 'elixir_ls')
|
||||
|
||||
let g:ale_has_override['win32'] = 0
|
||||
|
||||
After:
|
||||
let g:ale_has_override = {}
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(should set correct defaults (unix)):
|
||||
AssertLinter 'elixir-ls/language_server.sh', 'elixir-ls/language_server.sh'
|
||||
|
||||
Execute(should set correct defaults (win32)):
|
||||
let g:ale_has_override['win32'] = 1
|
||||
|
||||
AssertLinter 'elixir-ls\language_server.bat', 'elixir-ls\language_server.bat'
|
||||
|
||||
Execute(should configure elixir-ls release location):
|
||||
let b:ale_elixir_elixir_ls_release = 'boo'
|
||||
|
||||
AssertLinter 'boo/language_server.sh', 'boo/language_server.sh'
|
||||
|
||||
Execute(should set correct LSP values):
|
||||
call ale#test#SetFilename('mix_paths/wrapped_project/lib/app.ex')
|
||||
|
||||
AssertLSPLanguage 'elixir'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/mix_paths/wrapped_project')
|
||||
Reference in New Issue
Block a user