自定义 Checkstyle 检查嵌套 Isssue

Custom Checkstyle Check Nesting Isssue

提问人:nulluser 提问时间:9/8/2023 更新时间:9/9/2023 访问量:49

问:

我正在尝试创建一个自定义的 Checkstyle 检查,该检查在 Java 中强制执行一条规则,即在左大括号之后有一个新的空行。我尝试了几种方法,但我一直遇到的问题是我的检查仅适用于顶级代码。

例如,在 Java 文件中,它只对类强制执行规则,但方法本身并不在类中。

我尝试了两种主要的方法来编写检查,一种是通过遍历所有大括号标记来检查行,另一种方法是查看整个文件内容并检查行号,类似于这个 Github 问题,https://github.com/checkstyle/checkstyle/pull/11525/files

无论哪种情况,我都在扩展 puppycrawl Checkstyle 工具并使用 visitToken 方法实现。然后在 checkstyle.xml 中,我将我的检查添加到模块的模块中。另外,请注意,我正在尝试在 Intellij Checkstyle 插件中使用此检查。TreeWalkerChecker

java 嵌套 checkstyle intellij-plugin

评论

0赞 Sachith Muhandiram 9/9/2023
请发布您已经尝试过的内容(您的代码、错误等)

答:

0赞 mlebedy 9/9/2023 #1

我认为 LeftCurly 检查是最接近您意图的实现。

我将首先根据 LeftCurlyCheck 代码创建一个新的检查器(您已经完成的工作)并修改 verifyBrace 方法。

在那里,您可以获取左大括号(例如)之后的行并检查它是否为空。String lineAfterBrace = getLine(brace.getLineNo());

(或者,您可以使用一个选项来扩展原始的 LeftCurly 检查,以验证下一行是否为空)