需要多行时 Checkstyle 验证失败
Checkstyle validation fail when needs multiple lines
我需要在 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 表达式可以更好,问题是,多行行为在 regex simulator site 中与上面的示例一起工作,但在 checkstyle 中不行。我搜索了一个 checkstyle 文档,但没有找到现成的特征。
有人知道这个问题的解决方案吗?
谢谢。
可能您 运行 检查具有 CRLF
行结尾的文件。如果是,请记住您的模式中的 \r
。
这对我有用:
<module name="RegexpMultiline">
<property name="format" value="\{[\r]?\n(?![\r]?\n)"/>
<property name="message" value="should have empty line"/>
</module>
我更改了模式中的一些内容:
.+
开头不需要
- 不需要匹配
;
- negative lookahead已使用
我需要在 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 表达式可以更好,问题是,多行行为在 regex simulator site 中与上面的示例一起工作,但在 checkstyle 中不行。我搜索了一个 checkstyle 文档,但没有找到现成的特征。
有人知道这个问题的解决方案吗?
谢谢。
可能您 运行 检查具有 CRLF
行结尾的文件。如果是,请记住您的模式中的 \r
。
这对我有用:
<module name="RegexpMultiline">
<property name="format" value="\{[\r]?\n(?![\r]?\n)"/>
<property name="message" value="should have empty line"/>
</module>
我更改了模式中的一些内容:
.+
开头不需要- 不需要匹配
;
- negative lookahead已使用