Before: runtime ale_linters/erlang/elvis.vim After: call ale#linter#Reset() Execute(Warning messages should be handled): AssertEqual \ [ \ { \ 'lnum': 11, \ 'text': "Replace the 'if' expression on line 11 with a 'case' expression or function clauses.", \ 'type': 'W', \ }, \ { \ 'lnum': 20, \ 'text': 'Remove the debug call to io:format/1 on line 20.', \ 'type': 'W', \ }, \ ], \ ale_linters#erlang#elvis#Handle(bufnr(''), [ \ "src/foo.erl:11:no_if_expression:Replace the 'if' expression on line 11 with a 'case' expression or function clauses.", \ 'src/foo.erl:20:no_debug_call:Remove the debug call to io:format/1 on line 20.', \ ]) Execute(Line length message shouldn't contain the line itself): AssertEqual \ [ \ { \ 'lnum': 24, \ 'text': 'Line 24 is too long.', \ 'type': 'W', \ }, \ ], \ ale_linters#erlang#elvis#Handle(bufnr(''), [ \ 'src/foo.erl:24:line_length:Line 24 is too long: io:format("Look ma, too long!"),.', \ ])