Before: Save g:ale_fuse_fusionlint_options Save g:ale_fuse_fusionlint_executable unlet! g:ale_fuse_fusionlint_options unlet! g:ale_fuse_fusionlint_executable runtime ale_linters/fuse/fusionlint.vim After: Restore call ale#linter#Reset() Execute(The fuse fusionlint command callback should return the correct default string): AssertEqual ale#Escape('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 \ ale#Escape('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 \ ale#Escape('util/linter.fuse') \ . ' --filename %s -i', \ join(split(ale_linters#fuse#fusionlint#GetCommand(1)))