Before: runtime ale_linters/fuse/fusionlint.vim After: call ale#linter#Reset() let g:ale_fuse_fusionlint_options = '' let g:ale_fuse_fusionlint_executable = 'fusion-lint' Execute(The fuse fusionlint command callback should return the correct default string): AssertEqual '''fusion-lint'' --filename %s -i', \ join(split(ale_linters#fuse#fusionlint#GetCommand(1))) Execute(The fuse fusionlint command callback should let you set options): let g:ale_fuse_fusionlint_options = '--example-option argument' AssertEqual '''fusion-lint'' --example-option argument --filename %s -i', \ join(split(ale_linters#fuse#fusionlint#GetCommand(1))) Execute(The fusionlint executable should be configurable): let g:ale_fuse_fusionlint_executable = 'util/linter.fuse' AssertEqual 'util/linter.fuse', ale_linters#fuse#fusionlint#GetExecutable(1) AssertEqual '''util/linter.fuse'' --filename %s -i', \ join(split(ale_linters#fuse#fusionlint#GetCommand(1)))