Search in sources :

Example 6 with IStubElementType

use of com.intellij.psi.stubs.IStubElementType in project intellij-community by JetBrains.

the class PsiClassImpl method getScope.

@Override
public PsiElement getScope() {
    final PsiClassStub stub = getStub();
    if (stub != null) {
        return stub.getParentStub().getPsi();
    }
    ASTNode treeElement = getNode();
    ASTNode parent = treeElement.getTreeParent();
    while (parent != null) {
        if (parent.getElementType() instanceof IStubElementType) {
            return parent.getPsi();
        }
        parent = parent.getTreeParent();
    }
    return getContainingFile();
}
Also used : ASTNode(com.intellij.lang.ASTNode) IStubElementType(com.intellij.psi.stubs.IStubElementType) PsiClassStub(com.intellij.psi.impl.java.stubs.PsiClassStub)

Example 7 with IStubElementType

use of com.intellij.psi.stubs.IStubElementType in project intellij-community by JetBrains.

the class PsiAnchor method createStubReference.

@Nullable
public static StubIndexReference createStubReference(@NotNull PsiElement element, @NotNull PsiFile containingFile) {
    if (element instanceof StubBasedPsiElement && element.isPhysical() && (element instanceof PsiCompiledElement || canHaveStub(containingFile))) {
        final StubBasedPsiElement elt = (StubBasedPsiElement) element;
        final IStubElementType elementType = elt.getElementType();
        if (elt.getStub() != null || elementType.shouldCreateStub(element.getNode())) {
            int index = calcStubIndex((StubBasedPsiElement) element);
            if (index != -1) {
                return new StubIndexReference(containingFile, index, containingFile.getLanguage(), elementType);
            }
        }
    }
    return null;
}
Also used : IStubElementType(com.intellij.psi.stubs.IStubElementType) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

IStubElementType (com.intellij.psi.stubs.IStubElementType)7 Nullable (org.jetbrains.annotations.Nullable)4 ASTNode (com.intellij.lang.ASTNode)3 IStubFileElementType (com.intellij.psi.tree.IStubFileElementType)3 PsiFileWithStubSupport (com.intellij.psi.impl.source.PsiFileWithStubSupport)2 IElementType (com.intellij.psi.tree.IElementType)2 StubBasedPsiElementBase (com.intellij.extapi.psi.StubBasedPsiElementBase)1 PsiFile (com.intellij.psi.PsiFile)1 StubBuilder (com.intellij.psi.StubBuilder)1 PsiClassStub (com.intellij.psi.impl.java.stubs.PsiClassStub)1 PsiFileImpl (com.intellij.psi.impl.source.PsiFileImpl)1 ForeignLeafPsiElement (com.intellij.psi.impl.source.tree.ForeignLeafPsiElement)1 StubElement (com.intellij.psi.stubs.StubElement)1 StubTree (com.intellij.psi.stubs.StubTree)1 GrTypeDefinitionStub (org.jetbrains.plugins.groovy.lang.psi.stubs.GrTypeDefinitionStub)1