Before: call ale#assert#SetUpLinterTest('r', 'lintr') After: call ale#assert#TearDownLinterTest() Execute(The default lintr command should be correct): AssertLinter 'Rscript', \ 'cd ' . ale#Escape(getcwd()) . ' && ' \ . 'Rscript --vanilla -e ' \ . ale#Escape('suppressPackageStartupMessages(library(lintr));' \ . 'lint(cache = FALSE, commandArgs(TRUE), ' \ . 'with_defaults())') \ . ' %t' Execute(The lintr options should be configurable): let b:ale_r_lintr_options = 'with_defaults(object_usage_linter = NULL)' AssertLinter 'Rscript', \ 'cd ' . ale#Escape(getcwd()) . ' && ' \ . 'Rscript --vanilla -e ' \ . ale#Escape('suppressPackageStartupMessages(library(lintr));' \ . 'lint(cache = FALSE, commandArgs(TRUE), ' \ . 'with_defaults(object_usage_linter = NULL))') \ . ' %t' Execute(If the lint_package flag is set, lintr::lint_package should be called): let b:ale_r_lintr_lint_package = 1 AssertLinter 'Rscript', \ 'cd ' . ale#Escape(getcwd()) . ' && ' \ . 'Rscript --vanilla -e ' \ . ale#Escape('suppressPackageStartupMessages(library(lintr));' \ . 'lint_package(cache = FALSE, ' \ . 'linters = with_defaults())') \ . ' %t'