【问题标题】:How can I visit descendant nodes in a SonarQube custom rule?如何访问 SonarQube 自定义规则中的后代节点?
【发布时间】:2017-08-07 17:18:14
【问题描述】:

我正在尝试编写 SonarQube JavaScript 自定义规则。规则应该看到一个 for 循环不为空(即在 for 块体中有超过 0 个语句)。

我扩展了 DoubleDispatchVisitorCheck 类,并重写了 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 没有深入探讨如何遍历树中的多个节点。

【问题讨论】:

    标签: javascript sonarqube sonarqube5.6


    【解决方案1】:
    if (statement.is(Kind.BLOCK) && ((BlockTree) statement).statements().isEmpty()) {
      addIssue(tree, "message");
    }
    

    顺便说一句,有类似的规则https://sonarqube.com/coding_rules#rule_key=javascript%3AEmptyBlock

    【讨论】:

    猜你喜欢
    • 2017-03-17
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2016-09-03
    • 2017-04-08
    • 2015-09-15
    • 1970-01-01
    • 2014-04-22
    相关资源
    最近更新 更多