diff options
author | Jon Parise <jon@indelible.org> | 2018-09-28 11:42:50 -0700 |
---|---|---|
committer | Jon Parise <jon@indelible.org> | 2018-10-11 08:31:12 -0700 |
commit | 7eae7812915602ece637714e6f82d4551e9697b6 (patch) | |
tree | 66982c439b1f386dc691be877f25547cea209fa8 /test/command_callback | |
parent | 87986520d62c497fbbde94e2e6bed35f5489cfcd (diff) | |
download | ale-7eae7812915602ece637714e6f82d4551e9697b6.zip |
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.
Diffstat (limited to 'test/command_callback')
-rw-r--r-- | test/command_callback/test_elixir_ls_command_callbacks.vader | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/command_callback/test_elixir_ls_command_callbacks.vader b/test/command_callback/test_elixir_ls_command_callbacks.vader new file mode 100644 index 00000000..0d00354b --- /dev/null +++ b/test/command_callback/test_elixir_ls_command_callbacks.vader @@ -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') |