public void scanFile(PerlVisitorContext context) { this.context = context; AstNode tree = context.rootTree(); if (tree != null) { visitFile(tree); scanNode(tree, subscribedKinds()); leaveFile(tree); } }
public void scanNode(AstNode node) { scanNode(node, subscribedKinds()); }
private void scanNode(AstNode node, Set<AstNodeType> subscribedKinds) { boolean isSubscribedType = subscribedKinds.contains(node.getType()); if (isSubscribedType) { visitNode(node); } List<AstNode> children = node.getChildren(); if (children.isEmpty()) { for (Token token : node.getTokens()) { visitToken(token); } } else { for (AstNode child : children) { scanNode(child, subscribedKinds); } } if (isSubscribedType) { leaveNode(node); } }
public static void scanFile(File file, PerlVisitor... visitors) { PerlVisitorContext context = createContext(file); for (PerlVisitor visitor : visitors) { visitor.scanFile(context); } }
@Override public void leaveFile(@Nullable AstNode astNode) { super.leaveFile(astNode); newHighlighting.save(); }
@Override public void visitToken(Token token) { super.visitToken(token); if (token.getType().equals(PerlTokenType.NUMBER)) { highlight(token, TypeOfText.CONSTANT); } else if (token.getType() instanceof PerlKeyword) { highlight(token, TypeOfText.KEYWORD); } else if (token.getType().equals(PerlTokenType.STRING)) { highlight(token, TypeOfText.STRING); } for (Trivia trivia : token.getTrivia()) { highlight(trivia.getToken(), TypeOfText.COMMENT); } }
public static void scanFile(File file, PerlVisitor... visitors) { PerlVisitorContext context = createContext(file); for (PerlVisitor visitor : visitors) { visitor.scanFile(context); } }