gpt4 book ai didi

perl - 禁用整个文件的评论家 - Parse::RecDescent 预编译解析器和 PerlCritic/Tidyall

转载 作者:行者123 更新时间:2023-12-04 20:06:10 26 4
gpt4 key购买 nike

我正在尝试从我的完整性检查中删除一个错误 [当我将代码推送到我的 git 存储库时,有一个钩子(Hook)可以使用 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 不同?)

最佳答案

why doesn't tidyall critique the same as critic?



一个简单的 perlcritic在命令行上默认为严重性 5,除非您在 ~/.perlcriticrc 中配置了不同的东西。 .规则 ProhibitUnrestrictedNoCritic默认为严重性 3,因此您的 tidyall正在运行 Perl::Critic至少严重性为 3。根据其文档,您可以通过 tidyall.ini 中的类似内容进行更改。 :
[PerlCritic]
argv = -severity 4

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

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

关于perl - 禁用整个文件的评论家 - Parse::RecDescent 预编译解析器和 PerlCritic/Tidyall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com