【问题标题】:Checkstyle validation fail when needs multiple lines需要多行时,Checkstyle 验证失败
【发布时间】:2015-07-21 22:39:42
【问题描述】:

我需要对 eclipse checkstyle 执行验证规则,在方法的一个键 { 之后和结束键 } 之前应该有一个空行,例如:

public void wrongMethod() {
    System.out.println("wrong method");
}

正确

public void correctMethod() {

    System.out.println("correct method");

}    

我尝试在 checkstyle 规则 xml 文件中使用 RegexpMultiline,如下所示:

<module name="RegexpMultiline">
    <property name="format" value=".+\{\n.+[;]"/>
    <property name="message" value="should have empty line"/>
</module>  

当然,这个正则表达式可以更好,问题是,多行行为在regex simulator site 中与上面的示例一起工作,但在 checkstyle 中则不行。我搜索了一个 checkstyle 文档,但没有找到一个现成的 reature。

有人知道这个问题的解决方案吗?

谢谢。

【问题讨论】:

  • 你试过&lt;property name="format" value=".+\{\n+.+;"/&gt;吗?
  • 您好,我现在尝试,但不工作,如果 \n 在任何情况下在 checkstyle 中都不起作用。

标签: regex eclipse checkstyle


【解决方案1】:

您可能会对带有CRLF 行结尾的文件进行检查。如果是,请记住您的模式中的 \r

这对我有用:

<module name="RegexpMultiline">
    <property name="format" value="\{[\r]?\n(?![\r]?\n)"/>
    <property name="message" value="should have empty line"/>
</module>  

我改变了模式中的一些东西:

【讨论】:

  • 谢谢,它有效,我做了一点修改,因为该规则验证了方法之外的其他内容:(public|private|protected).+\{[\r]?\n( ?![\r]?\n)。现在我将尝试在关闭键上执行方法结束的规则。
猜你喜欢
  • 2020-08-20
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 2020-06-10
相关资源
最近更新 更多