Before: Save g:ale_run_synchronously Save g:ale_buffer_info let g:ale_run_synchronously = 1 let g:ale_buffer_info = {} let g:checking_buffer = 0 unlet! b:ale_linted function! TestCallback(buffer, output) return [] endfunction call ale#linter#PreventLoading('testft') call ale#linter#Define('testft', { \ 'name': 'testlinter', \ 'callback': 'TestCallback', \ 'executable': has('win32') ? 'cmd' : 'true', \ 'command': 'true', \}) After: Restore unlet! g:checking_buffer delfunction TestCallback call ale#linter#Reset() augroup VaderTest autocmd! augroup END augroup! VaderTest Given testft (An empty file): Execute(ALELintPre should not return success on ale#engine#IsCheckingBuffer): augroup VaderTest autocmd! autocmd User ALELintPre let g:checking_buffer = ale#engine#IsCheckingBuffer(bufnr('')) ? 1 : 0 augroup END ALELint AssertEqual g:checking_buffer, 0 Execute(ALEJobStarted should return success on ale#engine#IsCheckingBuffer): augroup VaderTest autocmd! autocmd User ALEJobStarted let g:checking_buffer = ale#engine#IsCheckingBuffer(bufnr('')) ? 1 : 0 augroup END ALELint AssertEqual g:checking_buffer, 1