如何访问 SonarQube 自定义规则中的后代节点?
How can I visit descendant nodes in a SonarQube custom rule?
我正在尝试编写 SonarQube JavaScript 自定义规则。规则应该看到 for 循环不为空(即在 for 块主体中有超过 0 个语句)。
我扩展了 DoubleDispatchVisitorCheck class 并覆盖了 visitForStatement 方法。在该方法中,我不确定如何确定 for 语句有多少后代。
@Override
public void visitForStatement(ForStatementTree tree) {
StatementTree statement = tree.statement();
// How to see tree or statement descendants?
super.visitForStatement(tree);
}
best documentation I've located没有深入探讨如何遍历树中的多个节点。
if (statement.is(Kind.BLOCK) && ((BlockTree) statement).statements().isEmpty()) {
addIssue(tree, "message");
}
顺便说一句,有类似的规则 https://sonarqube.com/coding_rules#rule_key=javascript%3AEmptyBlock
我正在尝试编写 SonarQube JavaScript 自定义规则。规则应该看到 for 循环不为空(即在 for 块主体中有超过 0 个语句)。
我扩展了 DoubleDispatchVisitorCheck class 并覆盖了 visitForStatement 方法。在该方法中,我不确定如何确定 for 语句有多少后代。
@Override
public void visitForStatement(ForStatementTree tree) {
StatementTree statement = tree.statement();
// How to see tree or statement descendants?
super.visitForStatement(tree);
}
best documentation I've located没有深入探讨如何遍历树中的多个节点。
if (statement.is(Kind.BLOCK) && ((BlockTree) statement).statements().isEmpty()) {
addIssue(tree, "message");
}
顺便说一句,有类似的规则 https://sonarqube.com/coding_rules#rule_key=javascript%3AEmptyBlock