findPackage() parametrize with scope

This commit is contained in:
Nikolay Krasko
2015-01-19 17:42:02 +03:00
parent 07e74f3179
commit c8de43f93e
2 changed files with 6 additions and 3 deletions
@@ -102,7 +102,7 @@ public class JavaClassFinderImpl implements JavaClassFinder {
@Nullable
@Override
public JavaPackage findPackage(@NotNull FqName fqName) {
PsiPackage psiPackage = javaFacade.findPackage(fqName.asString());
PsiPackage psiPackage = javaFacade.findPackage(fqName.asString(), javaSearchScope);
return psiPackage == null ? null : new JavaPackageImpl(psiPackage, javaSearchScope);
}
}
@@ -79,7 +79,7 @@ public class KotlinJavaPsiFacade {
@NotNull
private PsiClass[] findClassesInDumbMode(@NotNull String qualifiedName, @NotNull GlobalSearchScope scope) {
String packageName = StringUtil.getPackageName(qualifiedName);
PsiPackage pkg = findPackage(packageName);
PsiPackage pkg = findPackage(packageName, scope);
String className = StringUtil.getShortName(qualifiedName);
if (pkg == null && packageName.length() < qualifiedName.length()) {
PsiClass[] containingClasses = findClassesInDumbMode(packageName, scope);
@@ -117,6 +117,7 @@ public class KotlinJavaPsiFacade {
getProject().getExtensions(PsiElementFinder.EP_NAME), new Function1<PsiElementFinder, Boolean>() {
@Override
public Boolean invoke(PsiElementFinder finder) {
// TODO: Filter out PsiElementFinderImpl in idea 14
return !(finder instanceof KotlinFinderMarker);
}
});
@@ -131,7 +132,9 @@ public class KotlinJavaPsiFacade {
return elementFinders.toArray(new KotlinPsiElementFinderWrapper[elementFinders.size()]);
}
public PsiPackage findPackage(@NotNull String qualifiedName) {
public PsiPackage findPackage(@NotNull String qualifiedName, GlobalSearchScope searchScope) {
assert searchScope == this.searchScope : "Illegal scope is used for package search";
ConcurrentMap<String, PsiPackage> cache = SoftReference.dereference(myPackageCache);
if (cache == null) {
myPackageCache = new SoftReference<ConcurrentMap<String, PsiPackage>>(cache = new ConcurrentHashMap<String, PsiPackage>());