diff options
Diffstat (limited to 'ale_linters/json/vscodejson.vim')
-rw-r--r-- | ale_linters/json/vscodejson.vim | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/ale_linters/json/vscodejson.vim b/ale_linters/json/vscodejson.vim index dcaee010..be9eaf53 100644 --- a/ale_linters/json/vscodejson.vim +++ b/ale_linters/json/vscodejson.vim @@ -1,6 +1,22 @@ " Author: Dalius Dobravolskas <dalius.dobravolskas@gmail.com> " Description: VSCode json language server +call ale#Set('json_vscodejson_executable', '<auto>') + +function! ale_linters#json#vscodejson#GetExecutable(buffer) abort + let l:executable = ale#Var(a:buffer, 'json_vscodejson_executable') + + if l:executable is# '<auto>' + if ale#engine#IsExecutable(a:buffer, 'vscode-json-languageserver') + let l:executable = 'vscode-json-languageserver' + else + let l:executable = 'vscode-json-language-server' + endif + endif + + return l:executable +endfunction + function! ale_linters#json#vscodejson#GetProjectRoot(buffer) abort let l:git_path = ale#path#FindNearestDirectory(a:buffer, '.git') @@ -10,7 +26,7 @@ endfunction call ale#linter#Define('json', { \ 'name': 'vscodejson', \ 'lsp': 'stdio', -\ 'executable': 'vscode-json-language-server', +\ 'executable': function('ale_linters#json#vscodejson#GetExecutable'), \ 'command': '%e --stdio', \ 'project_root': function('ale_linters#json#vscodejson#GetProjectRoot'), \}) |