element.accept( new PsiRecursiveElementVisitor() {
element.accept( new PsiRecursiveElementVisitor() {
element.accept( new PsiRecursiveElementVisitor() {
element.accept( new PsiRecursiveElementVisitor() {
@Override public void visitCompositeElement(@NotNull GoCompositeElement o) { super.visitCompositeElement(o); for (PsiElement psiElement : o.getChildren()) { psiElement.accept(this); ProgressIndicatorProvider.checkCanceled(); } }
@Override public void visitFile(@NotNull PsiFile file) { super.visitFile(file); for (PsiElement psiElement : file.getChildren()) { psiElement.accept(this); ProgressIndicatorProvider.checkCanceled(); } } }
element.accept( new PsiRecursiveElementVisitor() {
private void acceptSafe(@Nullable PsiElement o) { if (o != null) { o.accept(this); } }
/** * Need this for situations like <code>p:f[x_]:=x^2</code> */ @Override public void visitPattern(final Pattern pattern) { final PsiElement lastChild = pattern.getLastChild(); if (lastChild != null) { lastChild.accept(this); } }
@Override public void visitCondition(Condition condition) { PsiElement firstChild = condition.getFirstChild(); if (firstChild != null) { firstChild.accept(this); } }
public GlobalDefinitionCollector(PsiElement startElement) { myAssignments = new HashMap<>(); final CollectorVisitor myVisitor = new CollectorVisitor(); startElement.accept(myVisitor); }
@Override public void visitRuleDelayed(RuleDelayed ruleDelayed) { final PsiElement lhs = ruleDelayed.getFirstChild(); myAssignmentType = Assignment.NONE_; lhs.accept(this); }
@NotNull @Override public FoldingDescriptor[] buildFoldRegions(@NotNull PsiElement root, @NotNull Document document, boolean quick) { List<FoldingDescriptor> masonDescriptors = new ArrayList<>(Arrays.asList(super.buildFoldRegions(root, document, quick))); root.accept(new HTMLMasonFoldingRegionsCollector(document, masonDescriptors)); return masonDescriptors.toArray(new FoldingDescriptor[masonDescriptors.size()]); }
@NotNull @Override public FoldingDescriptor[] buildFoldRegions(@NotNull PsiElement root, @NotNull Document document, boolean quick) { List<FoldingDescriptor> masonDescriptors = new ArrayList<>(Arrays.asList(super.buildFoldRegions(root, document, quick))); root.accept(new MasonFoldingRegionsCollector(document, masonDescriptors)); return masonDescriptors.toArray(new FoldingDescriptor[masonDescriptors.size()]); }
@NotNull @Override public FoldingDescriptor[] buildFoldRegions(@NotNull PsiElement root, @NotNull Document document, boolean quick) { // @todo handle this if (root instanceof OuterLanguageElementImpl) { return FoldingDescriptor.EMPTY; } FoldingRegionsCollector collector = new FoldingRegionsCollector(document); root.accept(collector); List<FoldingDescriptor> descriptors = collector.getDescriptors(); return descriptors.toArray(new FoldingDescriptor[descriptors.size()]); }
@Override public void visitMethodReferenceExpression(PsiMethodReferenceExpression expression) { final PsiElement qualifier = expression.getQualifier(); if (qualifier != null) { qualifier.accept(this); } myBuf.append("::"); myBuf.append(expression.getReferenceName()); }
@Override public void visitPattern(Pattern pattern) { PsiElement firstChild = pattern.getFirstChild(); if (firstChild instanceof Symbol) { myPatternSymbols.add((Symbol) firstChild); } pattern.getLastChild().accept(this); }
private static PsiElement findElementWithBinding(PsiElement root, Binding variableBinding) { VariableDeclarationFinder finder = new VariableDeclarationFinder(variableBinding); root.accept(finder); return finder.getMatch(); }
public static void visitRecursively(PsiElement element, BashVisitor visitor) { element.accept(visitor); // calling element.getChildren() is expensive, // better iterate over the chilren PsiElement child = element.getFirstChild(); while (child != null) { if (child.getNode() instanceof CompositeElement) { visitRecursively(child, visitor); } child = child.getNextSibling(); } }
public static boolean isCastRedundant (PsiTypeCastExpression typeCast) { PsiElement parent = typeCast.getParent(); while(parent instanceof PsiParenthesizedExpression) parent = parent.getParent(); if (parent instanceof PsiExpressionList) parent = parent.getParent(); if (parent instanceof PsiReferenceExpression) parent = parent.getParent(); MyIsRedundantVisitor visitor = new MyIsRedundantVisitor(false); parent.accept(visitor); return visitor.isRedundant; }