public static @Nullable ASTNode getNextNonWhitespaceLeaf(@Nullable ASTNode node) {
    if (node == null) return null;
    ASTNode treeNext = node.getTreeNext();
    if (treeNext != null) {
      ASTNode candidate = TreeUtil.findFirstLeaf(treeNext);
      if (candidate != null && !isWhitespaceOrEmpty(candidate)) {
        return candidate;
      }
      else {
        return getNextNonWhitespaceLeaf(candidate);
      }
    }
    final ASTNode treeParent = node.getTreeParent();

    if (treeParent == null || treeParent.getTreeParent() == null) {
      return null;
    }
    else {
      return getNextNonWhitespaceLeaf(treeParent);
    }
  }
public static @Nullable ASTNode getNextNonWhitespaceLeaf(@Nullable ASTNode node)