Before: runtime ale_linters/xml/xmllint.vim After: call ale#linter#Reset() let g:ale_xml_xmllint_options = '' let g:ale_xml_xmllint_executable = 'xmllint' Execute(The xml xmllint command callback should return the correct default string): AssertEqual '''xmllint'' --noout -', \ join(split(ale_linters#xml#xmllint#GetCommand(1))) Execute(The xml xmllint command callback should let you set options): let g:ale_xml_xmllint_options = '--xinclude --postvalid' AssertEqual '''xmllint'' --xinclude --postvalid --noout -', \ join(split(ale_linters#xml#xmllint#GetCommand(1))) Execute(The xmllint executable should be configurable): let g:ale_xml_xmllint_executable = '~/.local/bin/xmllint' AssertEqual '~/.local/bin/xmllint', ale_linters#xml#xmllint#GetExecutable(1) AssertEqual '''~/.local/bin/xmllint'' --noout -', \ join(split(ale_linters#xml#xmllint#GetCommand(1)))