Checkstyle ParenPad Check

时间:2016-05-15 17:59:48

标签: java checkstyle

我遇到Checkstyle在ParenPad规则检查中产生误报的情况。我也看到了这篇SO文章Checkstyle: Usage of ParenPad Check,这个问题是无关紧要的。

考虑以下代码段:

public class Foo

    public static final void main(      String... args ) { ... }

}

当ParenPad配置如下:

<module name="ParenPad">
    <property name="option" value="space" />
</module>

此结果将显示为有效,因为在(方法中的main开放之前有 空格。

我在ParenPad检查类中徘徊,我没有看到任何其他规则/配置可用于在括号之前和/或之后强制执行单个空间。是否有内置的东西允许我强制执行此要求或我是否需要创建自定义检查?据我所知,当前实现检查是否存在任何数量的空格,无论是制表符分隔还是其他。

1 个答案:

答案 0 :(得分:0)

查看checkstyle代码,我目前看到的唯一方法是添加另一个检查。 首先定义ParenPad,然后添加两个RegexpSingleline s

<module name="RegexpSingleline">
    <property name="format" value="(\s{2,}$"/>
    <property name="message" value="Too many spaces after ("/>
</module>
<module name="RegexpSingleline">
    <property name="format" value="\s{2,})$"/>
    <property name="message" value="Too many spaces before )"/>
</module>

是的,它可以在其他情况下中断(例如,具有()的字符串),但您可以扩展它以涵盖大多数情况。