code review
This commit is contained in:
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.psi.*
|
||||
public interface KotlinFileStub : PsiFileStub<JetFile> {
|
||||
public fun getPackageFqName(): FqName
|
||||
public fun isScript(): Boolean
|
||||
public fun findImportByAlias(alias: String): KotlinImportDirectiveStub?
|
||||
public fun findImportsByAlias(alias: String): List<KotlinImportDirectiveStub>
|
||||
}
|
||||
|
||||
public interface KotlinPlaceHolderStub<T : JetElement> : StubElement<T>
|
||||
|
||||
@@ -45,8 +45,8 @@ public class KotlinFileStubImpl(jetFile: JetFile?, private val packageName: Stri
|
||||
return childrenStubs.filterIsInstance<PsiClassStub<*>>().map { it.psi }.toTypedArray()
|
||||
}
|
||||
|
||||
override fun findImportByAlias(alias: String): KotlinImportDirectiveStub? {
|
||||
val importList = childrenStubs.firstOrNull { it.stubType == JetStubElementTypes.IMPORT_LIST } ?: return null
|
||||
return importList.childrenStubs.filterIsInstance<KotlinImportDirectiveStub>().firstOrNull { it.getAliasName() == alias }
|
||||
override fun findImportsByAlias(alias: String): List<KotlinImportDirectiveStub> {
|
||||
val importList = childrenStubs.firstOrNull { it.stubType == JetStubElementTypes.IMPORT_LIST } ?: return emptyList()
|
||||
return importList.childrenStubs.filterIsInstance<KotlinImportDirectiveStub>().filter { it.getAliasName() == alias }
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -24,6 +24,8 @@ import org.jetbrains.kotlin.psi.stubs.*;
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.StubIndexService;
|
||||
import org.jetbrains.kotlin.util.UtilPackage;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class StubIndexServiceImpl implements StubIndexService {
|
||||
|
||||
@Override
|
||||
@@ -127,9 +129,9 @@ public class StubIndexServiceImpl implements StubIndexService {
|
||||
|
||||
KotlinFileStub fileStub = getContainingFileStub(stub);
|
||||
if (fileStub != null) {
|
||||
KotlinImportDirectiveStub aliasImportStub = fileStub.findImportByAlias(stub.getShortName());
|
||||
if (aliasImportStub != null) {
|
||||
sink.occurrence(JetAnnotationsIndex.getInstance().getKey(), aliasImportStub.getImportedFqName().shortName().asString());
|
||||
List<KotlinImportDirectiveStub> aliasImportStubs = fileStub.findImportsByAlias(stub.getShortName());
|
||||
for (KotlinImportDirectiveStub importStub : aliasImportStubs) {
|
||||
sink.occurrence(JetAnnotationsIndex.getInstance().getKey(), importStub.getImportedFqName().shortName().asString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.stubindex.JetAnnotationsIndex
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
@@ -91,7 +92,7 @@ public class KotlinAnnotatedElementsSearcher : QueryExecutor<PsiModifierListOwne
|
||||
return JetAnnotationsIndex.getInstance().get(name, annClass.getProject(), useScope)
|
||||
}
|
||||
|
||||
return (useScope as LocalSearchScope).scope.flatMap { it.getChildrenOfType<JetAnnotationEntry>().asIterable() }
|
||||
return (useScope as LocalSearchScope).scope.flatMap { it.collectDescendantsOfType<JetAnnotationEntry>() }
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user