mirror of
https://github.com/dense-analysis/ale
synced 2024-12-18 04:15:39 +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.
64 lines
1.4 KiB
Plaintext
64 lines
1.4 KiB
Plaintext
Before:
|
|
Save g:ale_buffer_info
|
|
Save g:ale_echo_cursor
|
|
Save g:ale_enabled
|
|
Save g:ale_run_synchronously
|
|
Save g:ale_set_highlights
|
|
Save g:ale_set_loclist
|
|
Save g:ale_set_quickfix
|
|
Save g:ale_set_signs
|
|
|
|
" Disable the features we don't need to check.
|
|
let g:ale_buffer_info = {}
|
|
let g:ale_echo_cursor = 0
|
|
let g:ale_enabled = 1
|
|
let g:ale_run_synchronously = 1
|
|
unlet! g:ale_run_synchronously_callbacks
|
|
let g:ale_set_highlights = 0
|
|
let g:ale_set_loclist = 0
|
|
let g:ale_set_quickfix = 0
|
|
let g:ale_set_signs = 0
|
|
|
|
let g:output = []
|
|
|
|
function! TestCallback(buffer, output)
|
|
" Extract just letters from the output.
|
|
let g:output = filter(
|
|
\ map(a:output, 'matchstr(v:val, ''[a-zA-Z]\+'')'),
|
|
\ '!empty(v:val)'
|
|
\)
|
|
|
|
return []
|
|
endfunction
|
|
|
|
call ale#linter#PreventLoading('foobar')
|
|
call ale#linter#Define('foobar', {
|
|
\ 'name': 'testlinter',
|
|
\ 'callback': 'TestCallback',
|
|
\ 'executable': has('win32') ? 'cmd' : 'cat',
|
|
\ 'command': has('win32') ? 'type %t' : 'cat %t',
|
|
\})
|
|
|
|
After:
|
|
Restore
|
|
|
|
unlet! g:ale_run_synchronously_callbacks
|
|
unlet! g:output
|
|
delfunction TestCallback
|
|
|
|
call ale#engine#Cleanup(bufnr(''))
|
|
call ale#linter#Reset()
|
|
|
|
Given foobar (Some imaginary filetype):
|
|
foo
|
|
bar
|
|
baz
|
|
|
|
Execute(ALE should be able to read the %t file):
|
|
AssertEqual 'foobar', &filetype
|
|
|
|
ALELint
|
|
call ale#test#FlushJobs()
|
|
|
|
AssertEqual ['foo', 'bar', 'baz'], g:output
|