Rewrite indexed search for java classes produced from kotlin code
This commit is contained in:
@@ -86,18 +86,20 @@ public class JetShortNamesCache extends PsiShortNamesCache {
|
|||||||
@Override
|
@Override
|
||||||
public PsiClass[] getClassesByName(@NotNull @NonNls String name, @NotNull GlobalSearchScope scope) {
|
public PsiClass[] getClassesByName(@NotNull @NonNls String name, @NotNull GlobalSearchScope scope) {
|
||||||
// Quick check for classes from getAllClassNames()
|
// Quick check for classes from getAllClassNames()
|
||||||
Collection<String> classNames = JetShortClassNameIndex.getInstance().getAllKeys(project);
|
Collection<JetClassOrObject> classOrObjects = JetShortClassNameIndex.getInstance().get(name, project, scope);
|
||||||
if (!classNames.contains(name)) {
|
if (classOrObjects.isEmpty()) {
|
||||||
return new PsiClass[0];
|
return new PsiClass[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
List<PsiClass> result = new ArrayList<PsiClass>();
|
List<PsiClass> result = new ArrayList<PsiClass>();
|
||||||
|
for (JetClassOrObject classOrObject : classOrObjects) {
|
||||||
for (String fqName : JetFullClassNameIndex.getInstance().getAllKeys(project)) {
|
if (classOrObject instanceof JetNamedDeclaration) {
|
||||||
if ((new FqName(fqName)).shortName().getName().equals(name)) {
|
FqName fqName = JetPsiUtil.getFQName((JetNamedDeclaration) classOrObject);
|
||||||
PsiClass psiClass = javaElementFinder.findClass(fqName, scope);
|
if (fqName != null && fqName.shortName().getName().equals(name)) {
|
||||||
if (psiClass != null) {
|
PsiClass psiClass = javaElementFinder.findClass(fqName.getFqName(), scope);
|
||||||
result.add(psiClass);
|
if (psiClass != null) {
|
||||||
|
result.add(psiClass);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user