From 86274466c5b5a225f8a821c1620bad7e202a357a Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 2 Jul 2013 18:28:04 +0400 Subject: [PATCH] Add ability to search kotlin classes in selected scope --- .../jet/plugin/caches/JetShortNamesCache.java | 10 ++++++---- .../plugin/completion/JetTypesCompletionHelper.java | 3 ++- .../jetbrains/jet/plugin/quickfix/AutoImportFix.java | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java index 2d6005d82b8..3872b09ae6e 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java @@ -348,23 +348,25 @@ public class JetShortNamesCache extends PsiShortNamesCache { public Collection getJetClassesDescriptors( @NotNull Condition acceptedShortNameCondition, - @NotNull KotlinCodeAnalyzer analyzer + @NotNull KotlinCodeAnalyzer analyzer, + @NotNull GlobalSearchScope searchScope ) { Collection classDescriptors = new ArrayList(); for (String fqName : JetFullClassNameIndex.getInstance().getAllKeys(project)) { FqName classFQName = new FqName(fqName); if (acceptedShortNameCondition.value(classFQName.shortName().asString())) { - classDescriptors.addAll(getJetClassesDescriptorsByFQName(analyzer, classFQName)); + classDescriptors.addAll(getJetClassesDescriptorsByFQName(analyzer, classFQName, searchScope)); } } return classDescriptors; } - private Collection getJetClassesDescriptorsByFQName(@NotNull KotlinCodeAnalyzer analyzer, @NotNull FqName classFQName) { + private Collection getJetClassesDescriptorsByFQName( + @NotNull KotlinCodeAnalyzer analyzer, @NotNull FqName classFQName, @NotNull GlobalSearchScope searchScope) { Collection jetClassOrObjects = JetFullClassNameIndex.getInstance().get( - classFQName.asString(), project, GlobalSearchScope.allScope(project)); + classFQName.asString(), project, searchScope); if (jetClassOrObjects.isEmpty()) { // This fqn is absent in caches, dead or not in scope diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetTypesCompletionHelper.java b/idea/src/org/jetbrains/jet/plugin/completion/JetTypesCompletionHelper.java index efc3211a77c..29fba8b8ce4 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetTypesCompletionHelper.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetTypesCompletionHelper.java @@ -20,6 +20,7 @@ import com.intellij.codeInsight.completion.*; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; +import com.intellij.psi.search.GlobalSearchScope; import com.intellij.util.Consumer; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.asJava.KotlinLightClass; @@ -46,7 +47,7 @@ public class JetTypesCompletionHelper { Project project = parameters.getOriginalFile().getProject(); JetShortNamesCache namesCache = JetShortNamesCache.getKotlinInstance(project); jetCompletionResult.addAllElements(namesCache.getJetClassesDescriptors( - jetCompletionResult.getShortNameFilter(), jetCompletionResult.getResolveSession())); + jetCompletionResult.getShortNameFilter(), jetCompletionResult.getResolveSession(), GlobalSearchScope.allScope(project))); if (!KotlinFrameworkDetector.isJsKotlinModule((JetFile) parameters.getOriginalFile())) { addAdaptedJavaCompletion(parameters, jetCompletionResult); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/AutoImportFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/AutoImportFix.java index 24cedb60bb1..582906ee11a 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/AutoImportFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/AutoImportFix.java @@ -213,7 +213,7 @@ public class AutoImportFix extends JetHintAction implem public boolean value(String s) { return typeName.equals(s); } - }, resolveSession); + }, resolveSession, GlobalSearchScope.allScope(project)); return Collections2.transform(descriptors, new Function() { @Override