我正在尝试创建一个自定义的 Checkstyle 检查,该检查在 Java 中强制执行一条规则,即在左大括号之后有一个新的空行。我尝试了几种方法,但我不断遇到的问题是我的检查仅适用于顶层代码。
例如,在 Java 文件中,它仅对类强制执行规则,但不会在类中强制执行方法本身。
我尝试了两种主要的方法来编写检查,一种是通过检查所有大括号标记来检查行,另一种是查看整个文件内容并检查行号,类似于此 Github 问题,https: //github.com/checkstyle/checkstyle/pull/11525/files.
无论哪种情况,我都会扩展 puppycrawl Checkstyle 工具并使用访问令牌方法来实现。然后在 checkstyle.xml 中,我将检查添加到
TreeWalker
模块的 Checker
模块中。另请注意,我正在尝试在 Intellij Checkstyle 插件中使用此检查。
我认为 LeftCurly 检查是最接近您意图的实现。
我将首先基于 LeftCurlyCheck 代码创建一个新的检查器(您已经完成的操作)并修改 verifyBrace 方法。
您可以在左大括号之后找到该行(例如
String lineAfterBrace = getLine(brace.getLineNo());
)并检查它是否为空。