All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
2 Save g:ale_lint_on_save
5 Save g:ale_run_synchronously
8 call ale#test#SetDirectory('/testplugin/test/completion')
9 call ale#test#SetFilename('dummy.txt')
11 runtime autoload/ale/lsp.vim
12 runtime autoload/ale/lsp_linter.vim
14 let g:ale_disable_lsp = 0
15 unlet! b:ale_disable_lsp
16 let g:ale_lint_on_save = 1
18 let g:ale_lsp_next_message_id = 1
19 let g:ale_run_synchronously = 1
20 let g:conn_id = v:null
21 let g:message_list = []
23 function! LanguageCallback() abort
27 function! ProjectRootCallback() abort
31 call ale#linter#Define('foobar', {
32 \ 'name': 'dummy_linter',
34 \ 'command': 'cat - > /dev/null',
35 \ 'executable': has('win32') ? 'cmd' : 'echo',
36 \ 'language': function('LanguageCallback'),
37 \ 'project_root': function('ProjectRootCallback'),
39 let g:ale_linters = {'foobar': ['dummy_linter']}
41 function! ale#lsp_linter#StartLSP(buffer, linter, Callback) abort
42 let g:conn_id = ale#lsp#Register('executable', '/foo/bar', 'foobar', {})
43 call ale#lsp#MarkDocumentAsOpen(g:conn_id, a:buffer)
45 \ 'command': 'foobar',
47 \ 'connection_id': g:conn_id,
48 \ 'project_root': '/foo/bar',
51 call a:Callback(a:linter, l:details)
56 " Replace the Send function for LSP, so we can monitor calls to it.
57 function! ale#lsp#Send(conn_id, message) abort
58 call add(g:message_list, a:message)
64 if g:conn_id isnot v:null
65 call ale#lsp#RemoveConnectionWithID(g:conn_id)
71 unlet! b:ale_save_event_fired
73 delfunction LanguageCallback
74 delfunction ProjectRootCallback
76 call ale#test#RestoreDirectory()
77 call ale#linter#Reset()
79 " Stop any timers we left behind.
80 " This stops the tests from failing randomly.
81 call ale#completion#StopTimer()
83 runtime autoload/ale/completion.vim
84 runtime autoload/ale/lsp.vim
85 runtime autoload/ale/lsp_linter.vim
87 Given foobar (Some imaginary filetype):
90 Execute(Server should be notified on save):
91 call ale#events#SaveEvent(bufnr(''))
95 \ [1, 'textDocument/didChange', {
97 \ 'uri': ale#path#ToFileURI(expand('%:p')),
98 \ 'version': g:ale_lsp_next_version_id - 1,
100 \ 'contentChanges': [{'text': join(getline(1, '$'), "\n") . "\n"}],
105 Execute(Server should be notified on save with didSave is supported by server):
107 " Replace has capability function to simulate didSave server capability
108 function! ale#lsp#HasCapability(conn_id, capability) abort
109 if a:capability == 'did_save'
115 call ale#events#SaveEvent(bufnr(''))
119 \ [1, 'textDocument/didChange', {
121 \ 'uri': ale#path#ToFileURI(expand('%:p')),
122 \ 'version': g:ale_lsp_next_version_id - 1,
124 \ 'contentChanges': [{'text': join(getline(1, '$'), "\n") . "\n"}],
126 \ [1, 'textDocument/didSave', {
128 \ 'uri': ale#path#ToFileURI(expand('%:p')),
134 Execute(Server should be notified on change):
135 call ale#events#FileChangedEvent(bufnr(''))
139 \ [1, 'textDocument/didChange', {
141 \ 'uri': ale#path#ToFileURI(expand('%:p')),
142 \ 'version': g:ale_lsp_next_version_id - 1,
144 \ 'contentChanges': [{'text': join(getline(1, '$'), "\n") . "\n"}],