98 lines
2.4 KiB
Plaintext
98 lines
2.4 KiB
Plaintext
|
Before:
|
||
|
Save g:ale_lint_on_save
|
||
|
Save g:ale_enabled
|
||
|
Save g:ale_linters
|
||
|
Save g:ale_run_synchronously
|
||
|
|
||
|
call ale#test#SetDirectory('/testplugin/test/completion')
|
||
|
call ale#test#SetFilename('dummy.txt')
|
||
|
|
||
|
runtime autoload/ale/lsp.vim
|
||
|
|
||
|
let g:ale_lint_on_save = 1
|
||
|
let b:ale_enabled = 1
|
||
|
let g:ale_lsp_next_message_id = 1
|
||
|
let g:ale_run_synchronously = 1
|
||
|
let g:message_list = []
|
||
|
let g:Callback = ''
|
||
|
|
||
|
call ale#linter#Define('foobar', {
|
||
|
\ 'name': 'dummy_linter',
|
||
|
\ 'lsp': 'stdio',
|
||
|
\ 'command': 'cat - > /dev/null',
|
||
|
\ 'executable': has('win32') ? 'cmd' : 'echo',
|
||
|
\ 'language_callback': {buffer -> 'foobar'},
|
||
|
\ 'project_root_callback': {buffer -> expand('.')},
|
||
|
\ })
|
||
|
let g:ale_linters = {'foobar': ['dummy_linter']}
|
||
|
|
||
|
function! ale#linter#StartLSP(buffer, linter, callback) abort
|
||
|
let g:Callback = a:callback
|
||
|
|
||
|
return {
|
||
|
\ 'connection_id': 347,
|
||
|
\ 'project_root': '/foo/bar',
|
||
|
\}
|
||
|
endfunction
|
||
|
|
||
|
" Replace the Send function for LSP, so we can monitor calls to it.
|
||
|
function! ale#lsp#Send(conn_id, message, ...) abort
|
||
|
call add(g:message_list, a:message)
|
||
|
endfunction
|
||
|
|
||
|
After:
|
||
|
Restore
|
||
|
|
||
|
unlet! b:ale_enabled
|
||
|
unlet! b:ale_linters
|
||
|
unlet! g:Callback
|
||
|
unlet! g:message_list
|
||
|
|
||
|
call ale#test#RestoreDirectory()
|
||
|
call ale#linter#Reset()
|
||
|
|
||
|
" Stop any timers we left behind.
|
||
|
" This stops the tests from failing randomly.
|
||
|
call ale#completion#StopTimer()
|
||
|
|
||
|
runtime autoload/ale/completion.vim
|
||
|
runtime autoload/ale/lsp.vim
|
||
|
|
||
|
Given foobar (Some imaginary filetype):
|
||
|
<contents>
|
||
|
|
||
|
Execute(Server should be notified on save):
|
||
|
call ale#events#SaveEvent(bufnr(''))
|
||
|
|
||
|
AssertEqual
|
||
|
\ [
|
||
|
\ [1, 'textDocument/didChange', {
|
||
|
\ 'textDocument': {
|
||
|
\ 'uri': ale#path#ToURI(expand('%:p')),
|
||
|
\ 'version': g:ale_lsp_next_version_id - 1,
|
||
|
\ },
|
||
|
\ 'contentChanges': [{'text': join(getline(1, '$'), "\n") . "\n"}],
|
||
|
\ }],
|
||
|
\ [1, 'textDocument/didSave', {
|
||
|
\ 'textDocument': {
|
||
|
\ 'uri': ale#path#ToURI(expand('%:p')),
|
||
|
\ },
|
||
|
\ }],
|
||
|
\ ],
|
||
|
\ g:message_list
|
||
|
|
||
|
Execute(Server should be notified on change):
|
||
|
call ale#events#FileChangedEvent(bufnr(''))
|
||
|
|
||
|
AssertEqual
|
||
|
\ [
|
||
|
\ [1, 'textDocument/didChange', {
|
||
|
\ 'textDocument': {
|
||
|
\ 'uri': ale#path#ToURI(expand('%:p')),
|
||
|
\ 'version': g:ale_lsp_next_version_id - 1,
|
||
|
\ },
|
||
|
\ 'contentChanges': [{'text': join(getline(1, '$'), "\n") . "\n"}],
|
||
|
\ }],
|
||
|
\ ],
|
||
|
\ g:message_list
|