18

我已经开始将一个项目转换为 Moose,我注意到的第一件事是我的批评/整洁测试陷入困境。Moose、Tidy 和 Critic 似乎不像以前那么喜欢彼此了。

是否有关于如何让评论家/整洁者更欣赏驼鹿方言的文档?大多数 Moose 用户都做什么?为更重的 Moose 模块放松/放弃评论家?自定义政策?

4

4 回答 4

15

你见过Perl::Critic::Moose吗?

于 2009-05-21T21:45:02.753 回答
6

两者都可以进行详细配置。

我不知道为什么 perltidy 不喜欢它,它与它无关。Perltidy 只控制风格。您可以在不更改任何功能的情况下更改代码的样式,这实际上主要是空格问题。您应该更改样式或使用 .perltidyrc 文件更改 perltidy 配置。

我不知道 perlcritic 有什么问题(也许是左值方法?),但您可以考虑使用 .perlcriticrc 文件关闭这些特定策略。此外,如果你的 perlcritic 是旧的,你可能想要升级它,因为一些旧版本在 Moose 类中给出了一些不正确的错误。

于 2008-09-18T13:34:50.607 回答
6

早期版本的 Perl::Critic 的“使用严格”策略不知道 Moose 会为您启用严格,但如果您升级 Perl::Critic,这将得到修复。

我将 Perl::Critic 和 Perl::Tidy 与 Moose 一起使用,我没有看到任何特别损坏的东西。好吧,实际上,我无法让 Perl::Tidy 正确布局这样的东西:

my $apple = Apple->new({
    color => "red",
    type  => "delicious",
});

Tidy 会坚持认为 ( 和 { 是缩进的两个开头级别,它看起来很傻:

my $apple = Apple->new({
        color => "red",
        type  => "delicious",
});

但是我们以前遇到过这个问题;项目中的编码约定是对命名参数使用 hashref,而不是 hash。因此,这并不是真正与 Moose 相关的问题。

你的具体症状是什么?

/J

于 2008-09-19T13:02:29.043 回答
3

我对 Critic 测试没有任何问题 - 诚然,我以 Severity=3 运行,至少部分原因是我必须处理的一些遗留代码是我没有 /time/ 来整理的,但是我的 Moose 东西可以通过那。

于 2008-09-18T13:47:11.077 回答