我正在尝试从我的健全性检查中删除一个错误[当我将代码推送到我的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
指向该文件。