install.fairie/dotfiles/.vim/plugged/ale/test/test_lint_on_filetype_changed.vader
Git E2E Dev Test Username e149692cc9 git subrepo clone https://github.com/dense-analysis/ale.git ./dotfiles/.vim/plugged/ale
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:   "???"
2022-10-18 10:37:09 -04:00

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