ale/test/test_format_temporary_file_creation.vader
w0rp 81c73da3b9
#2132 - lint and fix with ale#command#Run
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.
2019-02-06 22:00:11 +00:00

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