问题标签 [lintr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
44 浏览

r - devtools::check() 注意到 .lintr 作为隐藏文件和目录

当我运行时devtools::check(),我的构建将我的.lintr(位于根目录中)标记为最有可能包含在错误中的隐藏文件。有没有办法防止在支票上注明这一点?它没有包含在错误中,我需要它来整理我的包裹。

0 投票
1 回答
145 浏览

r - 使用 lintr::expect_lint_free() 进行测试失败并使用 devtools::check() 但可以使用 devtools::test()

我的包中的这个测试适用于devtools::test(). 在线 Travis 构建也进展顺利。

但是,devtools::check()它失败了。错误信息是

我在 Windows 上运行 R 版本 3.6.3 (2020-02-29),testthat 2.3.2 和 lintr 2.0.1。

我认为问题在于 lintr 不知道要 lintr 哪个文件。

有人可以向我指出这个问题的解决方案是什么吗?

0 投票
1 回答
105 浏览

r - 从单个 lintr 中排除源文件行范围(不是所有 lintr)

要检查我的包的代码质量,我正在使用包lintr使用命令

并得到一个我想忽略的结果:

函数的圈复杂度应小于 15

如何忽略cyclocomp_linter文件(行号范围)的单个 lintr ( ) 的单个“误报”lintr 结果?

编辑 1:目前我正在使用这个.lintr配置文件作为解决方法(通过完全禁用 lintr):

0 投票
1 回答
102 浏览

r - 为什么 sapply() 和 options() “不受欢迎”?

Jim Hester 的“lintr”包包含许多不同的 R 的 linter。该包的 README 以这种方式描述了其中一个 linter:

undesirable_function_linter:报告使用了不受欢迎的功能,例如 options 或 sapply 并提出替代方案。

我很惊讶。我已经使用 R 很多年了,而且我已经使用options()sapply()很多年。是什么让他们不受欢迎?还有更好的选择吗?

我知道getOption(),但它不能替代options(). 我也知道*apply()变体、Map()和 Tidyversemap函数。Tidyverse 函数对我来说总体上似乎比sapply()Map()- 我更喜欢 Tidyverse 函数中的默认值和参数顺序 - 但我不会想到称之为sapply()“不受欢迎的”。

0 投票
1 回答
40 浏览

r - lintr 包 - 在没有 roxygen 文档的情况下进行检查

我正在使用lintr包来检查我的包中是否与 tidyverse 编码标准不一致。但是,我正在处理的问题是,即使在我不想让他检查的 roxygen 文档中,lintr 包也会引发每行超过 80 个字符的问题。

因此,例如 lintr 包将通过Lines should not be more than 80 characters错误

#' @description This a description for very good function which does a lot of good things and it's not so long as this description.

我的问题是 - 我如何忽略文档中行数超过 80 个字符的所有标记(在处理普通代码时,我仍然希望对长行进行评论)。

0 投票
1 回答
78 浏览

r - 行不应超过 80 个字符。lint_length_linter; 对 assignment.assignment_linter 使用 <-,而不是 =

我在 vscode 中使用 R,它会抛出许多带有蓝色波浪下划线的注释,例如'行不应超过 80 个字符。lint_length_linte','对于 assignment.assignment_linter,使用 <-,而不是 ='。

在项目中创建一个“.lintr”文件可以解决这个问题,请参阅详细信息。并且关闭选项Lsp:Diagnostics也可以解决它。但我想知道如何通过修改某些配置文件(如 r.json、.Rprofile 等)来设置适用于所有 R 项目的全局设置。我试过但失败了。

lintr 检测到的一些问题在此处输入图像描述

0 投票
1 回答
18 浏览

r - 项目中没有可见的全局函数定义/没有可见的全局变量绑定?

我正在使用R Extension在 VS Code 中使用R。我几乎所有的项目工作都是使用targets来完成的,这意味着我的包导入和函数通常位于单独的文件中。

一个简单的例子是在一个看起来像的文件夹中工作

我遇到的问题是我从 {lintr} 收到有关从packages.R(或从tar_option_set(packages=c(...)))加载的函数(特别是特殊函数)的全局函数定义的警告。我有一个类似的问题,lintr 无法识别列名,而是将它们视为缺失变量。例如,一个函数functions.R可能如下所示:

lintr 警告示例

如果我正在开发一个包,解决方案(如在此处和其他地方发布的)将在 NAMESPACE 中包含该功能。但我不觉得每个快速分析都需要一个包。我还能如何避免这些警告?排除这些 linter 的唯一其他选择是/.lintr什么?