mirror of
https://github.com/dense-analysis/ale
synced 2024-12-30 01:52:13 +00:00
81c73da3b9
A new function is added here which will later be modified for public use in linter and fixer callbacks. All linting and fixing now goes through this new function, to prove that it works in all cases.
85 lines
1.9 KiB
Plaintext
85 lines
1.9 KiB
Plaintext
Before:
|
|
Save &filetype
|
|
Save g:ale_buffer_info
|
|
Save g:ale_lint_on_enter
|
|
Save g:ale_set_lists_synchronously
|
|
|
|
let g:buf = bufnr('')
|
|
let g:ale_lint_on_enter = 1
|
|
let g:ale_run_synchronously = 1
|
|
let g:ale_set_lists_synchronously = 1
|
|
|
|
function! TestCallback(buffer, output)
|
|
return [{
|
|
\ 'lnum': 1,
|
|
\ 'col': 3,
|
|
\ 'text': 'baz boz',
|
|
\}]
|
|
endfunction
|
|
|
|
call ale#linter#Define('foobar', {
|
|
\ 'name': 'testlinter',
|
|
\ 'callback': 'TestCallback',
|
|
\ 'executable': has('win32') ? 'cmd' : 'true',
|
|
\ 'command': has('win32') ? 'echo' : 'true',
|
|
\})
|
|
|
|
After:
|
|
Restore
|
|
unlet! g:buf
|
|
let g:ale_run_synchronously = 0
|
|
delfunction TestCallback
|
|
call ale#linter#Reset()
|
|
call setloclist(0, [])
|
|
|
|
Execute(The file changed event function should set b:ale_file_changed):
|
|
let g:ale_lint_on_enter = 0
|
|
|
|
if has('gui')
|
|
new
|
|
else
|
|
e test
|
|
endif
|
|
|
|
call ale#events#FileChangedEvent(g:buf)
|
|
close
|
|
|
|
" We should set the flag in the other buffer
|
|
AssertEqual 1, getbufvar(g:buf, 'ale_file_changed')
|
|
|
|
Execute(The file changed event function should lint the current buffer when it has changed):
|
|
set filetype=foobar
|
|
call ale#events#FileChangedEvent(bufnr(''))
|
|
call ale#test#FlushJobs()
|
|
|
|
AssertEqual [{
|
|
\ 'bufnr': bufnr(''),
|
|
\ 'lnum': 1,
|
|
\ 'vcol': 0,
|
|
\ 'col': 3,
|
|
\ 'text': 'baz boz',
|
|
\ 'type': 'E',
|
|
\ 'nr': -1,
|
|
\ 'pattern': '',
|
|
\ 'valid': 1,
|
|
\ }], ale#test#GetLoclistWithoutModule()
|
|
|
|
Execute(The buffer should be checked after entering it after the file has changed):
|
|
let b:ale_file_changed = 1
|
|
|
|
set filetype=foobar
|
|
call ale#events#ReadOrEnterEvent(bufnr(''))
|
|
call ale#test#FlushJobs()
|
|
|
|
AssertEqual [{
|
|
\ 'bufnr': bufnr(''),
|
|
\ 'lnum': 1,
|
|
\ 'vcol': 0,
|
|
\ 'col': 3,
|
|
\ 'text': 'baz boz',
|
|
\ 'type': 'E',
|
|
\ 'nr': -1,
|
|
\ 'pattern': '',
|
|
\ 'valid': 1,
|
|
\ }], ale#test#GetLoclistWithoutModule()
|