#653 - Automatically accept annoying loclist and quickfix errors from Vim

This commit is contained in:
w0rp
2017-08-20 13:27:18 +01:00
parent e5d0a17694
commit 753cf5da95
7 changed files with 96 additions and 17 deletions

View File

@@ -128,6 +128,7 @@ Execute (g:ale_lint_on_enter = 1 should bind the required events):
\ 'BufEnter * call ale#events#EnterEvent(str2nr(expand(''<abuf>'')))',
\ 'BufReadPost * call ale#Queue(0, ''lint_file'', str2nr(expand(''<abuf>'')))',
\ 'BufWinEnter * call ale#Queue(0, ''lint_file'', str2nr(expand(''<abuf>'')))',
\ 'BufWinLeave * call ale#events#BufWinLeave()',
\ 'FileChangedShellPost * call ale#events#FileChangedEvent(str2nr(expand(''<abuf>'')))',
\], CheckAutocmd('ALERunOnEnterGroup')

View File

@@ -9,9 +9,7 @@ Before:
\ 'feedkeys_calls': [],
\}
call ale#completion#Nop()
function! ale#completion#FeedKeys(string, mode) abort
function! ale#util#FeedKeys(string, mode) abort
call add(g:test_vars.feedkeys_calls, [a:string, a:mode])
endfunction

View File

@@ -0,0 +1,54 @@
Before:
let b:fake_mode = 'r'
let b:feedkeys_calls = []
" Mock mode() and feedkeys() for the check
function! ale#util#Mode(...) abort
return b:fake_mode
endfunction
function! ale#util#FeedKeys(...) abort
call add(b:feedkeys_calls, a:000)
endfunction
function! CheckError(mode, message, expected_list) abort
let b:fake_mode = a:mode
echom a:message
call ale#events#BufWinLeave()
AssertEqual [], b:feedkeys_calls
sleep 1ms
AssertEqual a:expected_list, b:feedkeys_calls
endfunction
After:
unlet! b:fake_mode
unlet! b:feedkeys_calls
delfunction CheckError
runtime autoload/ale/util.vim
Execute(The BufWinLeave event function should hide E924 errors):
" For some reason, this test fails the first time when running in NeoVim
" in Docker, so just execute this twice.
echom 'E924'
call ale#events#BufWinLeave()
sleep 1ms
let b:feedkeys_calls = []
call CheckError('r', 'E924', [["\<CR>", 'n']])
Execute(The BufWinLeave event function should hide E925 errors):
call CheckError('r', 'E925', [["\<CR>", 'n']])
Execute(The BufWinLeave event function should hide E926 errors):
call CheckError('r', 'E926', [["\<CR>", 'n']])
Execute(The BufWinLeave event function should ignore other errors):
call CheckError('r', 'E999', [])
Execute(The BufWinLeave event function not send keys for other modes):
call CheckError('n', 'E924', [])