【发布时间】:2025-12-10 06:40:01
【问题描述】:
我已经开始将一个项目转换为 Moose,我注意到的第一件事是我的critic/tidy 测试陷入困境。 Moose、Tidy 和 Critic 似乎不像以前那么喜欢彼此了。
是否有关于如何让评论家/整洁者更欣赏 Moose 方言的文档?大多数 Moose 用户都做什么?为更重的 Moose 模块放松/放弃评论家?自定义政策?
【问题讨论】:
标签: perl moose perl-critic perl-tidy
我已经开始将一个项目转换为 Moose,我注意到的第一件事是我的critic/tidy 测试陷入困境。 Moose、Tidy 和 Critic 似乎不像以前那么喜欢彼此了。
是否有关于如何让评论家/整洁者更欣赏 Moose 方言的文档?大多数 Moose 用户都做什么?为更重的 Moose 模块放松/放弃评论家?自定义政策?
【问题讨论】:
标签: perl moose perl-critic perl-tidy
你见过Perl::Critic::Moose吗?
【讨论】:
两者都可以详细配置。
我不知道为什么 perltidy 不喜欢它,这与它无关。 Perltidy 只控制风格。您可以在不更改任何功能的情况下更改代码的样式,这实际上主要是空格问题。您应该更改样式或使用 .perltidyrc 文件更改 perltidy 配置。
我不知道 perlcritic 有什么问题(可能是左值方法?),但您可以考虑使用 .perlcriticrc 文件关闭这些特定策略。此外,如果您的 perlcritic 是旧的,您可能需要升级它,因为一些旧版本在 Moose 类中给出了一些不正确的错误。
【讨论】:
早期版本的 Perl::Critic 的“使用严格”政策不知道 Moose 为您启用严格,但如果您升级,这将得到修复 Perl::Critic。
我在 Moose 中同时使用 Perl::Critic 和 Perl::Tidy,但我没有看到 任何特别破碎的东西。好吧,实际上,我无法获得 Perl::Tidy 正确布局这样的东西:
my $apple = Apple->new({
color => "red",
type => "delicious",
});
Tidy 会坚持认为 ( 和 { 是缩进的两个开头级别, 它会看起来很傻:
my $apple = Apple->new({
color => "red",
type => "delicious",
});
但是我们之前也遇到过这个问题;项目中的编码约定 是对命名参数使用hashref,而不是hash。所以不是 确实是与 Moose 相关的问题。
你的症状具体是什么?
/J
【讨论】:
我对 Critic 测试没有任何问题 - 诚然,我以 Severity=3 运行,至少部分原因是我必须处理的一些遗留代码是我没有 /time/ 来整理的,但是我的 Moose事情顺利通过。
【讨论】: