com.intellij.psi.util
Class PsiTreeUtil

java.lang.Object
  extended by com.intellij.psi.util.PsiTreeUtil

public class PsiTreeUtil
extends java.lang.Object


Constructor Summary
PsiTreeUtil()
           
 
Method Summary
static PsiElement[] collectElements(PsiElement element, PsiElementFilter filter)
           
static PsiElement[] copyElements(PsiElement[] elements)
           
static PsiElement findCommonParent(PsiElement element1, PsiElement element2)
           
static
<T extends PsiElement>
T
findElementOfClassAtOffset(PsiFile file, int offset, java.lang.Class<T> clazz, boolean strictStart)
           
static
<T extends PsiElement>
T
findElementOfClassAtRange(PsiFile file, int startOffset, int endOffset, java.lang.Class<T> clazz)
           
static
<ChildType extends PsiElement>
ChildType
getChildOfType(PsiElement element, java.lang.Class<ChildType> aClass)
           
static
<ContextType extends PsiElement>
ContextType
getContextOfType(PsiElement element, java.lang.Class<ContextType> aClass, boolean strict)
           
static PsiElement getDeepestFirst(PsiElement elt)
           
static PsiElement getDeepestLast(PsiElement elt)
           
static
<ChildType extends PsiElement>
ChildType
getNextSiblingOfType(PsiElement sibling, java.lang.Class<ChildType> aClass)
           
static
<T extends PsiElement>
T
getParentOfType(PsiElement element, java.lang.Class<? extends T>... classes)
           
static
<T extends PsiElement>
T
getParentOfType(PsiElement element, java.lang.Class<? extends T>[] classes, boolean strict)
           
static
<ParentType extends PsiElement>
ParentType
getParentOfType(PsiElement element, java.lang.Class<ParentType> aClass)
           
static
<ParentType extends PsiElement>
ParentType
getParentOfType(PsiElement element, java.lang.Class<ParentType> aClass, boolean strict)
           
static
<T extends PsiElement>
T
getPrevSiblingOfType(PsiElement sibling, java.lang.Class<T> aClass)
           
static boolean isAncestor(PsiElement ancestor, PsiElement element, boolean strict)
           
static void mark(PsiElement element, java.lang.Object marker)
           
static boolean processElements(PsiElement element, PsiElementProcessor processor)
           
static PsiElement releaseMark(PsiElement root, java.lang.Object marker)
           
static PsiElement skipSiblingsBackward(PsiElement element, java.lang.Class[] elementClasses)
           
static PsiElement skipSiblingsForward(PsiElement element, java.lang.Class[] elementClasses)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PsiTreeUtil

public PsiTreeUtil()
Method Detail

isAncestor

public static boolean isAncestor(@NotNull
                                 PsiElement ancestor,
                                 @NotNull
                                 PsiElement element,
                                 boolean strict)

findCommonParent

@Nullable
public static PsiElement findCommonParent(@NotNull
                                                   PsiElement element1,
                                                   @NotNull
                                                   PsiElement element2)

getChildOfType

@Nullable
public static <ChildType extends PsiElement> ChildType getChildOfType(@NotNull
                                                                               PsiElement element,
                                                                               @NotNull
                                                                               java.lang.Class<ChildType> aClass)

getNextSiblingOfType

@Nullable
public static <ChildType extends PsiElement> ChildType getNextSiblingOfType(@NotNull
                                                                                     PsiElement sibling,
                                                                                     @NotNull
                                                                                     java.lang.Class<ChildType> aClass)

getPrevSiblingOfType

@Nullable
public static <T extends PsiElement> T getPrevSiblingOfType(@NotNull
                                                                     PsiElement sibling,
                                                                     @NotNull
                                                                     java.lang.Class<T> aClass)

getParentOfType

@Nullable
public static <ParentType extends PsiElement> ParentType getParentOfType(@Nullable
                                                                                  PsiElement element,
                                                                                  @NotNull
                                                                                  java.lang.Class<ParentType> aClass)

getContextOfType

@Nullable
public static <ContextType extends PsiElement> ContextType getContextOfType(@Nullable
                                                                                     PsiElement element,
                                                                                     @NotNull
                                                                                     java.lang.Class<ContextType> aClass,
                                                                                     boolean strict)

getParentOfType

@Nullable
public static <ParentType extends PsiElement> ParentType getParentOfType(@Nullable
                                                                                  PsiElement element,
                                                                                  @NotNull
                                                                                  java.lang.Class<ParentType> aClass,
                                                                                  boolean strict)

skipSiblingsForward

@Nullable
public static PsiElement skipSiblingsForward(@Nullable
                                                      PsiElement element,
                                                      @NotNull
                                                      java.lang.Class[] elementClasses)

skipSiblingsBackward

@Nullable
public static PsiElement skipSiblingsBackward(@Nullable
                                                       PsiElement element,
                                                       @NotNull
                                                       java.lang.Class[] elementClasses)

getParentOfType

@Nullable
public static <T extends PsiElement> T getParentOfType(PsiElement element,
                                                                java.lang.Class<? extends T>... classes)

getParentOfType

@Nullable
public static <T extends PsiElement> T getParentOfType(@NotNull
                                                                PsiElement element,
                                                                @NotNull
                                                                java.lang.Class<? extends T>[] classes,
                                                                boolean strict)

collectElements

@NotNull
public static PsiElement[] collectElements(@Nullable
                                                   PsiElement element,
                                                   @NotNull
                                                   PsiElementFilter filter)

processElements

public static boolean processElements(@Nullable
                                      PsiElement element,
                                      @NotNull
                                      PsiElementProcessor processor)

copyElements

@NotNull
public static PsiElement[] copyElements(@NotNull
                                                PsiElement[] elements)

mark

public static void mark(@NotNull
                        PsiElement element,
                        @NotNull
                        java.lang.Object marker)

releaseMark

@Nullable
public static PsiElement releaseMark(@NotNull
                                              PsiElement root,
                                              @NotNull
                                              java.lang.Object marker)

findElementOfClassAtOffset

@Nullable
public static <T extends PsiElement> T findElementOfClassAtOffset(@NotNull
                                                                           PsiFile file,
                                                                           int offset,
                                                                           @NotNull
                                                                           java.lang.Class<T> clazz,
                                                                           boolean strictStart)

findElementOfClassAtRange

@Nullable
public static <T extends PsiElement> T findElementOfClassAtRange(@NotNull
                                                                          PsiFile file,
                                                                          int startOffset,
                                                                          int endOffset,
                                                                          @NotNull
                                                                          java.lang.Class<T> clazz)
Returns:
maximal element of specified Class starting at startOffset exactly and ending not farther than endOffset

getDeepestFirst

@NotNull
public static PsiElement getDeepestFirst(@NotNull
                                                 PsiElement elt)

getDeepestLast

@NotNull
public static PsiElement getDeepestLast(@NotNull
                                                PsiElement elt)