mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Traverser: introduce psiTraverser(root), astTraverser(root)
This commit is contained in:
@@ -47,6 +47,11 @@ public class SyntaxTraverser<T> extends FilteredTraverserBase<T, SyntaxTraverser
|
||||
return new SyntaxTraverser<PsiElement>(psiApi(), null);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static SyntaxTraverser<PsiElement> psiTraverser(@Nullable PsiElement root) {
|
||||
return psiTraverser().withRoot(root);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static SyntaxTraverser<PsiElement> revPsiTraverser() {
|
||||
return new SyntaxTraverser<PsiElement>(psiApiReversed(), null);
|
||||
@@ -57,6 +62,11 @@ public class SyntaxTraverser<T> extends FilteredTraverserBase<T, SyntaxTraverser
|
||||
return new SyntaxTraverser<ASTNode>(astApi(), null);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static SyntaxTraverser<ASTNode> astTraverser(@Nullable ASTNode root) {
|
||||
return astTraverser().withRoot(root);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static SyntaxTraverser<LighterASTNode> lightTraverser(@NotNull PsiBuilder builder) {
|
||||
LighterASTApi api = new LighterASTApi(builder);
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.intellij.util.Function;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
@@ -108,8 +107,8 @@ public abstract class FilteredTraverserBase<T, Self extends FilteredTraverserBas
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Self withRoot(@NotNull T root) {
|
||||
return newInstance(meta.withRoots(Collections.singleton(root)));
|
||||
public Self withRoot(@Nullable T root) {
|
||||
return newInstance(meta.withRoots(ContainerUtil.createMaybeSingletonList(root)));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user