e149692cc9
subrepo: subdir: "dotfiles/.vim/plugged/ale" merged: "e4b205440" upstream: origin: "https://github.com/dense-analysis/ale.git" branch: "master" commit: "e4b205440" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
77 lines
2.1 KiB
Text
77 lines
2.1 KiB
Text
Before:
|
|
Save &filetype
|
|
Save g:ale_lint_on_filetype_changed
|
|
|
|
let g:ale_lint_on_filetype_changed = 1
|
|
let g:queue_calls = []
|
|
|
|
function! ale#Queue(...)
|
|
call add(g:queue_calls, a:000)
|
|
endfunction
|
|
|
|
After:
|
|
Restore
|
|
|
|
unlet! g:queue_calls
|
|
|
|
" Reload the ALE code to load the real function again.
|
|
runtime autoload/ale.vim
|
|
|
|
unlet! b:ale_original_filetype
|
|
|
|
Execute(The original filetype should be set on BufEnter):
|
|
let &filetype = 'foobar'
|
|
|
|
call ale#events#ReadOrEnterEvent(bufnr(''))
|
|
|
|
AssertEqual 'foobar', b:ale_original_filetype
|
|
|
|
let &filetype = 'bazboz'
|
|
|
|
call ale#events#ReadOrEnterEvent(bufnr(''))
|
|
|
|
AssertEqual 'bazboz', b:ale_original_filetype
|
|
|
|
Execute(Linting should not be queued when the filetype is the same):
|
|
let b:ale_original_filetype = 'foobar'
|
|
let g:queue_calls = []
|
|
|
|
call ale#events#FileTypeEvent(bufnr(''), 'foobar')
|
|
|
|
AssertEqual [], g:queue_calls
|
|
|
|
Execute(Linting should be queued when the filetype changes):
|
|
let b:ale_original_filetype = 'foobar'
|
|
let g:queue_calls = []
|
|
|
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
|
|
|
AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls
|
|
" The original filetype should be updated, so we don't trigger linting
|
|
" by setting a filetype equal to what it already is.
|
|
AssertEqual 'bazboz', b:ale_original_filetype
|
|
|
|
Execute(Linting should be done when the original filetype was blank):
|
|
let b:ale_original_filetype = ''
|
|
|
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
|
|
|
AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls
|
|
AssertEqual 'bazboz', b:ale_original_filetype
|
|
|
|
Execute(Linting should not be done when the setting is off):
|
|
let b:ale_original_filetype = 'foobar'
|
|
let g:ale_lint_on_filetype_changed = 0
|
|
|
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
|
|
|
AssertEqual [], g:queue_calls
|
|
" We should still update the old filetype
|
|
AssertEqual 'bazboz', b:ale_original_filetype
|
|
|
|
Execute(Linting should be done when the original filetype was not set):
|
|
unlet! b:ale_original_filetype
|
|
|
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
|
|
|
AssertEqual [], g:queue_calls
|