禁用整个文件的注释器 - Parse::RecDescent 预编译解析器 & PerlCritic/Tidyall



我正在尝试从我的健全性检查中删除一个错误[当我将代码推送到我的git存储库时,有一个钩子可以检查代码与perltidy&critic...使用 tidyall 作为处理程序。

我遇到的具体问题是预编译的语法解析器......这不是我想潜入和修复的事情(对不起 - 这超出了我的舒适区)

如果我在文件的开头添加一个简单的## no critic,那么

perlcritic path/to/class/file.pm

回来了

path/to/class/file.pm source OK

然而

tidyall --check-only -r .

回来了

perlcritic /tmp/Code-TidyAll-Frb0/path/to/class/file.pm failed
    exited with 2 - output was:
Unrestricted '## no critic' annotation at line 6, column 1. (Miscellanea::ProhibitUnrestrictedNoCritic, severity 3)

我知道我可以在tidyall.ini文件中解决此问题:

[PerlCritic lib]
select = **/*.{pm}
ignore = **/class/file.pm

....但是我觉得应该有一个更干净的解决方案。

(或者,为什么tidyall批评与critic不同?

为什么tidyall批评不和critic一样?

命令行上的简单perlcritic默认为严重性 5,除非您在 ~/.perlcriticrc 中配置了其他内容。规则ProhibitUnrestrictedNoCritic默认为严重性 3,因此您的tidyall正在运行的Perl::Critic至少具有 3 的严重性。根据其文档,您可以通过tidyall.ini中的以下内容进行更改:

[PerlCritic]
argv = -severity 4

然后tidyall 的检查应该与命令行中的perlcritic -4相同。(除非您在.perlcriticrc中配置了自定义严重性级别。


更新:根据您的评论,您希望在"残酷"级别检查所有内容。在这种情况下,您可以创建一个包含将禁用该策略的行[-Miscellanea::ProhibitUnrestrictedNoCritic]perlcriticrc文件,然后通过添加命令行参数 --profile /path/to/custom/perlcriticrc perlcritic指向该文件。

相关内容

  • 没有找到相关文章

最新更新