Completion optimization to not search classes across all modules for each modules
This commit is contained in:
committed by
Valentin Kipyatkov
parent
4ca6c611f8
commit
6729a72ef8
+1
-1
@@ -96,6 +96,6 @@ public class JavaClassFinderImpl implements JavaClassFinder {
|
||||
@Override
|
||||
public JavaPackage findPackage(@NotNull FqName fqName) {
|
||||
PsiPackage psiPackage = javaFacade.findPackage(fqName.asString());
|
||||
return psiPackage == null ? null : new JavaPackageImpl(psiPackage);
|
||||
return psiPackage == null ? null : new JavaPackageImpl(psiPackage, javaSearchScope);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-10
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.jet.lang.resolve.java.structure.impl;
|
||||
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import kotlin.Function1;
|
||||
import kotlin.KotlinPackage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -46,14 +47,6 @@ public class JavaElementCollectionFromPsiArrayUtil {
|
||||
}
|
||||
};
|
||||
|
||||
private static final Factory<PsiPackage, JavaPackage> PACKAGES = new Factory<PsiPackage, JavaPackage>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public JavaPackage create(@NotNull PsiPackage psiPackage) {
|
||||
return new JavaPackageImpl(psiPackage);
|
||||
}
|
||||
};
|
||||
|
||||
private static final Factory<PsiMethod, JavaMethod> METHODS = new Factory<PsiMethod, JavaMethod>() {
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -164,8 +157,14 @@ public class JavaElementCollectionFromPsiArrayUtil {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Collection<JavaPackage> packages(@NotNull PsiPackage[] packages) {
|
||||
return convert(packages, Factories.PACKAGES);
|
||||
public static Collection<JavaPackage> packages(@NotNull PsiPackage[] packages, @NotNull final GlobalSearchScope scope) {
|
||||
return convert(packages, new Factory<PsiPackage, JavaPackage>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public JavaPackage create(@NotNull PsiPackage aPackage) {
|
||||
return new JavaPackageImpl(aPackage, scope);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+4
-3
@@ -24,18 +24,19 @@ import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionF
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionFromPsiArrayUtil.packages
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
|
||||
public class JavaPackageImpl(psiPackage: PsiPackage) : JavaElementImpl<PsiPackage>(psiPackage), JavaPackage {
|
||||
public class JavaPackageImpl(psiPackage: PsiPackage, private val scope: GlobalSearchScope) : JavaElementImpl<PsiPackage>(psiPackage), JavaPackage {
|
||||
|
||||
override fun getClasses(nameFilter: (Name) -> Boolean): MutableCollection<JavaClass> {
|
||||
val psiClasses = getPsi().getClasses().filter {
|
||||
val psiClasses = getPsi().getClasses(scope).filter {
|
||||
val name = it.getName()
|
||||
name != null && nameFilter(Name.identifier(name))
|
||||
}
|
||||
return classes(psiClasses)
|
||||
}
|
||||
|
||||
override fun getSubPackages() = packages(getPsi().getSubPackages())
|
||||
override fun getSubPackages() = packages(getPsi().getSubPackages(scope), scope)
|
||||
|
||||
override fun getFqName() = FqName(getPsi().getQualifiedName())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user