Before: Save g:ale_warn_about_trailing_whitespace let g:ale_warn_about_trailing_whitespace = 1 runtime ale_linters/lua/luacheck.vim After: Restore call ale#linter#Reset() Execute(The luacheck handler should parse lines correctly): AssertEqual \ [ \ { \ 'lnum': 1, \ 'col': 8, \ 'text': 'line contains trailing whitespace', \ 'code': 'W612', \ 'type': 'W', \ }, \ { \ 'lnum': 3, \ 'col': 5, \ 'text': 'unused loop variable ''k''', \ 'code': 'W213', \ 'type': 'W', \ }, \ { \ 'lnum': 3, \ 'col': 19, \ 'text': 'accessing undefined variable ''x''', \ 'code': 'W113', \ 'type': 'W', \ }, \ ], \ ale_linters#lua#luacheck#Handle(347, [ \ ' /file/path/here.lua:1:8: (W612) line contains trailing whitespace', \ ' /file/path/here.lua:3:5: (W213) unused loop variable ''k''', \ ' /file/path/here.lua:3:19: (W113) accessing undefined variable ''x''', \ ]) Execute(The luacheck handler should respect the warn_about_trailing_whitespace option): let g:ale_warn_about_trailing_whitespace = 0 AssertEqual \ [ \ { \ 'lnum': 5, \ 'col': 43, \ 'text': 'unused argument ''g''', \ 'code': 'W212', \ 'type': 'W', \ } \ ], \ ale_linters#lua#luacheck#Handle(347, [ \ '/file/path/here.lua:15:97: (W614) trailing whitespace in a comment', \ '/file/path/here.lua:16:60: (W612) line contains trailing whitespace', \ '/file/path/here.lua:17:1: (W611) line contains only whitespace', \ '/file/path/here.lua:27:57: (W613) trailing whitespace in a string', \ '/file/path/here.lua:5:43: (W212) unused argument ''g''', \ ])