Add ability to search kotlin classes in selected scope
This commit is contained in:
@@ -348,23 +348,25 @@ public class JetShortNamesCache extends PsiShortNamesCache {
|
||||
|
||||
public Collection<ClassDescriptor> getJetClassesDescriptors(
|
||||
@NotNull Condition<String> acceptedShortNameCondition,
|
||||
@NotNull KotlinCodeAnalyzer analyzer
|
||||
@NotNull KotlinCodeAnalyzer analyzer,
|
||||
@NotNull GlobalSearchScope searchScope
|
||||
) {
|
||||
Collection<ClassDescriptor> classDescriptors = new ArrayList<ClassDescriptor>();
|
||||
|
||||
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<ClassDescriptor> getJetClassesDescriptorsByFQName(@NotNull KotlinCodeAnalyzer analyzer, @NotNull FqName classFQName) {
|
||||
private Collection<ClassDescriptor> getJetClassesDescriptorsByFQName(
|
||||
@NotNull KotlinCodeAnalyzer analyzer, @NotNull FqName classFQName, @NotNull GlobalSearchScope searchScope) {
|
||||
Collection<JetClassOrObject> 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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -213,7 +213,7 @@ public class AutoImportFix extends JetHintAction<JetSimpleNameExpression> implem
|
||||
public boolean value(String s) {
|
||||
return typeName.equals(s);
|
||||
}
|
||||
}, resolveSession);
|
||||
}, resolveSession, GlobalSearchScope.allScope(project));
|
||||
|
||||
return Collections2.transform(descriptors, new Function<ClassDescriptor, FqName>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user