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

时间:2019-01-10 15:13:59

标签: perl parse-recdescent

我正在尝试从完整性检查中删除错误[当我将代码推送到git仓库时,有一个钩子使用perltidycritic ...使用{ {1}}作为处理程序。]

我遇到的特定问题是与预编译的语法分析器有关。...这不是我想深入研究并解决的问题(对不起-这超出了我的舒适范围)

如果我在文件的开头添加一个简单的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的批评不同?)

1 个答案:

答案 0 :(得分:3)

  

为什么tidyallcritic的批评不同?

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

tidyall.ini

然后[PerlCritic] argv = -severity 4 的检查应该与命令行中的tidyall相同。 (除非您在perlcritic -4中配置了自定义严重性级别。)


更新:根据您的评论,您想检查所有“残酷”级别的内容。在这种情况下,您可以创建一个包含行.perlcriticrc的{​​{1}}文件,该行将禁用该策略,然后通过添加命令行参数{{1}将perlcriticrc指向该文件。 }。