diff options
-rw-r--r-- | autoload/ale/engine.vim | 15 | ||||
-rw-r--r-- | autoload/ale/lsp.vim | 7 |
2 files changed, 19 insertions, 3 deletions
diff --git a/autoload/ale/engine.vim b/autoload/ale/engine.vim index d15ab901..1643f86b 100644 --- a/autoload/ale/engine.vim +++ b/autoload/ale/engine.vim @@ -538,9 +538,22 @@ function! s:CheckWithTSServer(buffer, linter, executable) abort let l:open_documents = l:info.open_lsp_documents let l:is_open = index(l:open_documents, a:linter.name) >= 0 - call ale#lsp#StartProgram(a:executable, a:executable, function('s:HandleLSPResponse')) + let l:command = ale#job#PrepareCommand(a:executable) + let l:job_id = ale#lsp#StartProgram(a:executable, l:command, function('s:HandleLSPResponse')) + + if !l:job_id + if g:ale_history_enabled + call ale#history#Add(a:buffer, 'failed', l:job_id, l:command) + endif + + return + endif if !l:is_open + if g:ale_history_enabled + call ale#history#Add(a:buffer, 'started', l:job_id, l:command) + endif + call add(l:open_documents, a:linter.name) call ale#lsp#SendMessageToProgram( \ a:executable, diff --git a/autoload/ale/lsp.vim b/autoload/ale/lsp.vim index 449aa304..ce7efd1e 100644 --- a/autoload/ale/lsp.vim +++ b/autoload/ale/lsp.vim @@ -162,6 +162,9 @@ function! s:HandleCommandMessage(job_id, message) abort endfunction " Start a program for LSP servers which run with executables. +" +" The job ID will be returned for for the program if it ran, otherwise +" 0 will be returned. function! ale#lsp#StartProgram(executable, command, callback) abort if !executable(a:executable) return 0 @@ -179,7 +182,7 @@ function! ale#lsp#StartProgram(executable, command, callback) abort \ 'mode': 'raw', \ 'out_cb': function('s:HandleCommandMessage'), \} - let l:job_id = ale#job#Start(ale#job#PrepareCommand(a:command), l:options) + let l:job_id = ale#job#Start(a:command, l:options) else let l:job_id = l:conn.job_id endif @@ -190,7 +193,7 @@ function! ale#lsp#StartProgram(executable, command, callback) abort let l:conn.job_id = l:job_id - return 1 + return l:job_id endfunction " Send a message to a server with a given executable, and a command for |