提问人:nulluser 提问时间:9/8/2023 更新时间:9/9/2023 访问量:49
自定义 Checkstyle 检查嵌套 Isssue
Custom Checkstyle Check Nesting Isssue
问:
我正在尝试创建一个自定义的 Checkstyle 检查,该检查在 Java 中强制执行一条规则,即在左大括号之后有一个新的空行。我尝试了几种方法,但我一直遇到的问题是我的检查仅适用于顶级代码。
例如,在 Java 文件中,它只对类强制执行规则,但方法本身并不在类中。
我尝试了两种主要的方法来编写检查,一种是通过遍历所有大括号标记来检查行,另一种方法是查看整个文件内容并检查行号,类似于这个 Github 问题,https://github.com/checkstyle/checkstyle/pull/11525/files。
无论哪种情况,我都在扩展 puppycrawl Checkstyle 工具并使用 visitToken 方法实现。然后在 checkstyle.xml 中,我将我的检查添加到模块的模块中。另外,请注意,我正在尝试在 Intellij Checkstyle 插件中使用此检查。TreeWalker
Checker
答:
0赞
mlebedy
9/9/2023
#1
我认为 LeftCurly 检查是最接近您意图的实现。
我将首先根据 LeftCurlyCheck 代码创建一个新的检查器(您已经完成的工作)并修改 verifyBrace 方法。
在那里,您可以获取左大括号(例如)之后的行并检查它是否为空。String lineAfterBrace = getLine(brace.getLineNo());
(或者,您可以使用一个选项来扩展原始的 LeftCurly 检查,以验证下一行是否为空)
评论