summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/elixir/elixir_ls.vim4
-rw-r--r--doc/ale-elixir.txt15
-rw-r--r--test/command_callback/test_elixir_ls_command_callbacks.vader5
3 files changed, 23 insertions, 1 deletions
diff --git a/ale_linters/elixir/elixir_ls.vim b/ale_linters/elixir/elixir_ls.vim
index d5ad7cfc..c1e8fdd6 100644
--- a/ale_linters/elixir/elixir_ls.vim
+++ b/ale_linters/elixir/elixir_ls.vim
@@ -1,7 +1,8 @@
" Author: Jon Parise <jon@indelible.org>
-" Description: elixir-ls integration (https://github.com/JakeBecker/elixir-ls)
+" Description: ElixirLS integration (https://github.com/JakeBecker/elixir-ls)
call ale#Set('elixir_elixir_ls_release', 'elixir-ls')
+call ale#Set('elixir_elixir_ls_config', {})
function! ale_linters#elixir#elixir_ls#GetExecutable(buffer) abort
let l:dir = ale#path#Simplify(ale#Var(a:buffer, 'elixir_elixir_ls_release'))
@@ -16,4 +17,5 @@ call ale#linter#Define('elixir', {
\ 'executable_callback': 'ale_linters#elixir#elixir_ls#GetExecutable',
\ 'command_callback': 'ale_linters#elixir#elixir_ls#GetExecutable',
\ 'project_root_callback': 'ale#handlers#elixir#FindMixProjectRoot',
+\ 'lsp_config_callback': ale#VarFunc('elixir_elixir_ls_config'),
\})
diff --git a/doc/ale-elixir.txt b/doc/ale-elixir.txt
index 769842a4..30ec3be1 100644
--- a/doc/ale-elixir.txt
+++ b/doc/ale-elixir.txt
@@ -53,5 +53,20 @@ g:ale_elixir_elixir_ls_release *g:ale_elixir_elixir_ls_release*
Location of the elixir-ls release directory. This directory must contain
the language server scripts (language_server.sh and language_server.bat).
+g:ale_elixir_elixir_ls_config *g:ale_elixir_elixir_ls_config*
+ *b:ale_elixir_elixir_ls_config*
+ Type: |Dictionary|
+ Default: `{}`
+
+ Dictionary containing configuration settings that will be passed to the
+ language server. For example, to disable Dialyzer: >
+ {
+ \ 'elixirLS': {
+ \ 'dialyzerEnabled': v:false,
+ \ },
+ \ }
+<
+ Consult the ElixirLS documentation for more information about settings.
+
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
diff --git a/test/command_callback/test_elixir_ls_command_callbacks.vader b/test/command_callback/test_elixir_ls_command_callbacks.vader
index f79be9b4..5a8d8496 100644
--- a/test/command_callback/test_elixir_ls_command_callbacks.vader
+++ b/test/command_callback/test_elixir_ls_command_callbacks.vader
@@ -28,3 +28,8 @@ Execute(should set correct LSP values):
AssertLSPOptions {}
AssertLSPConfig {}
AssertLSPProject ale#path#Simplify(g:dir . '/mix_paths/wrapped_project')
+
+Execute(should accept configuration settings):
+ AssertLSPConfig {}
+ let b:ale_elixir_elixir_ls_config = {'elixirLS': {'dialyzerEnabled': v:false}}
+ AssertLSPConfig {'elixirLS': {'dialyzerEnabled': v:false}}