Before: runtime autoload/ale.vim " Replace one of the key ALE functions and make it throw. function! ale#FileTooLarge() abort throw 'broken' endfunction After: runtime autoload/ale.vim call ale#ResetErrorDelays() Given foobar(An empty file): Execute(ALE should stop queuing for a while after exceptions are thrown): AssertThrows call ale#Queue(100) call ale#Queue(100) Execute(ALE should stop linting for a while after exceptions are thrown): AssertThrows call ale#Lint() call ale#Lint() Execute(ALE should stop echoing messages for a while after exceptions are thrown): AssertThrows call ale#cursor#EchoCursorWarning() call ale#cursor#EchoCursorWarning()