Add a command for stopping all LSP clients
This commit is contained in:
parent
b7363bef7d
commit
0a0535546f
7 changed files with 153 additions and 4 deletions
90
test/lsp/test_reset_lsp.vader
Normal file
90
test/lsp/test_reset_lsp.vader
Normal file
|
@ -0,0 +1,90 @@
|
|||
Before:
|
||||
Save g:ale_enabled
|
||||
Save g:ale_set_signs
|
||||
Save g:ale_set_quickfix
|
||||
Save g:ale_set_loclist
|
||||
Save g:ale_set_highlights
|
||||
Save g:ale_echo_cursor
|
||||
|
||||
let g:ale_enabled = 0
|
||||
let g:ale_set_signs = 0
|
||||
let g:ale_set_quickfix = 0
|
||||
let g:ale_set_loclist = 0
|
||||
let g:ale_set_highlights = 0
|
||||
let g:ale_echo_cursor = 0
|
||||
|
||||
function EmptyString() abort
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
|
||||
call ale#linter#Define('testft', {
|
||||
\ 'name': 'lsplinter',
|
||||
\ 'lsp': 'tsserver',
|
||||
\ 'executable_callback': 'EmptyString',
|
||||
\ 'command_callback': 'EmptyString',
|
||||
\ 'project_root_callback': 'EmptyString',
|
||||
\ 'language_callback': 'EmptyString',
|
||||
\})
|
||||
|
||||
call ale#linter#Define('testft', {
|
||||
\ 'name': 'otherlinter',
|
||||
\ 'callback': 'TestCallback',
|
||||
\ 'executable': has('win32') ? 'cmd': 'true',
|
||||
\ 'command': 'true',
|
||||
\ 'read_buffer': 0,
|
||||
\})
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_save_event_fired
|
||||
|
||||
delfunction EmptyString
|
||||
call ale#linter#Reset()
|
||||
|
||||
Given testft(Some file with an imaginary filetype):
|
||||
Execute(ALEStopAllLSPs should clear the loclist):
|
||||
let g:ale_buffer_info[bufnr('')].loclist = [
|
||||
\ {
|
||||
\ 'text': 'a',
|
||||
\ 'lnum': 10,
|
||||
\ 'col': 0,
|
||||
\ 'bufnr': bufnr(''),
|
||||
\ 'vcol': 0,
|
||||
\ 'type': 'E',
|
||||
\ 'nr': -1,
|
||||
\ 'linter_name': 'lsplinter',
|
||||
\ },
|
||||
\ {
|
||||
\ 'text': 'a',
|
||||
\ 'lnum': 10,
|
||||
\ 'col': 0,
|
||||
\ 'bufnr': bufnr(''),
|
||||
\ 'vcol': 0,
|
||||
\ 'type': 'E',
|
||||
\ 'nr': -1,
|
||||
\ 'linter_name': 'otherlinter',
|
||||
\ },
|
||||
\]
|
||||
let g:ale_buffer_info[bufnr('')].active_linter_list = ['lsplinter', 'otherlinter']
|
||||
|
||||
ALEStopAllLSPs
|
||||
|
||||
" The loclist should be updated.
|
||||
AssertEqual g:ale_buffer_info[bufnr('')].loclist, [
|
||||
\ {
|
||||
\ 'text': 'a',
|
||||
\ 'lnum': 10,
|
||||
\ 'col': 0,
|
||||
\ 'bufnr': bufnr(''),
|
||||
\ 'vcol': 0,
|
||||
\ 'type': 'E',
|
||||
\ 'nr': -1,
|
||||
\ 'linter_name': 'otherlinter',
|
||||
\ },
|
||||
\]
|
||||
|
||||
" The LSP linter should be removed from the active linter list.
|
||||
AssertEqual g:ale_buffer_info[bufnr('')].active_linter_list, ['otherlinter']
|
Loading…
Add table
Add a link
Reference in a new issue