在lintr :: lint中指定linters

时间:2017-03-20 20:52:01

标签: r lintr

我无法弄清楚如何使用lintr关闭特定的linters。文档提供了一个示例(对于vim / syntastic,这就是我正在使用的),这不是很清楚:

let g:syntastic_r_lintr_linters = "with_defaults(line_length_linter(120))"

显然这一切都是改变默认值。我是否需要列出我想在这里使用的所有短线?有没有办法排除一对夫妇?

我认为有类似

的东西
let g:syntastic_r_lintr_linters_nonportable_path_linter = 0

但我找不到合适的语法。

显然g:syntastic_r_lintr_linters应该是一个短名单。但目前尚不清楚应该使用什么语法。

如果我们忘记了vim语法并且直接前往R包lintr(vim / syntastic调用)和linters lint参数,那么这可行:

lint(file.R, linters=assignment_linter)

这不是(没有错误,但没有捕获代码中的错误):

lint(file.R, linters=list(assignment_linter, single_quotes_linter))

这也不是(错误):

lint(file.R, linters=list('assignment_linter', 'single_quotes_linter'))

但这样做:

lint('file.R',linters=list('assignment_linter'=assignment_linter,'single_quotes_linter'=single_quotes_linter))

所以也许它应该是一个命名列表?

1 个答案:

答案 0 :(得分:1)

关闭特定链接的正确语法是将此(例如)添加到vimrc:

let g:syntastic_r_lintr_linters = "with_defaults(single_quotes_linter=NULL)"

这不在文档中。我不得不在github上挖掘一些旧的(封闭的)问题来找到它。

此外,lintr::lint确实期望linters参数的命名列表,但现在将接受未命名的列表(请参阅https://github.com/jimhester/lintr/issues/224)。所以这应该可以从头开始制作一个列表:

let g:syntastic_r_lintr_linters = "list(assignment_linter, single_quotes_linter")