Before: runtime ale_linters/lua/luacheck.vim After: call ale#linter#Reset() let g:ale_lua_luacheck_options = '' let g:ale_lua_luacheck_executable = 'luacheck' Execute(The lua luacheck command callback should return the correct default string): AssertEqual ale#Escape('luacheck') . ' --formatter plain --codes --filename %s -', \ join(split(ale_linters#lua#luacheck#GetCommand(1))) Execute(The lua luacheck command callback should let you set options): let g:ale_lua_luacheck_options = '--config filename' AssertEqual ale#Escape('luacheck') . ' --config filename --formatter plain --codes --filename %s -', \ join(split(ale_linters#lua#luacheck#GetCommand(1))) Execute(The luacheck executable should be configurable): let g:ale_lua_luacheck_executable = 'luacheck.sh' AssertEqual 'luacheck.sh', ale_linters#lua#luacheck#GetExecutable(1) AssertEqual ale#Escape('luacheck.sh') . ' --formatter plain --codes --filename %s -', \ join(split(ale_linters#lua#luacheck#GetCommand(1)))