mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
delegate to ClsStubBuilder for inner class identification
This commit is contained in:
@@ -40,7 +40,13 @@ public class ClassFileStubBuilder implements BinaryFileStubBuilder {
|
||||
|
||||
@Override
|
||||
public boolean acceptsFile(final VirtualFile file) {
|
||||
return !ClassFileViewProvider.isInnerClass(file);
|
||||
final ClsStubBuilderFactory[] factories = Extensions.getExtensions(ClsStubBuilderFactory.EP_NAME);
|
||||
for (ClsStubBuilderFactory factory : factories) {
|
||||
if (!factory.isInnerClass(file)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-10
@@ -18,6 +18,7 @@ package com.intellij.psi.impl.compiled;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.ClassFileViewProvider;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.impl.java.stubs.PsiClassStub;
|
||||
import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl;
|
||||
@@ -68,16 +69,7 @@ public class DefaultClsStubBuilderFactory extends ClsStubBuilderFactory {
|
||||
|
||||
@Override
|
||||
public boolean isInnerClass(VirtualFile file) {
|
||||
String name = file.getNameWithoutExtension();
|
||||
int len = name.length();
|
||||
int idx = name.indexOf('$');
|
||||
|
||||
while (idx > 0) {
|
||||
if (idx + 1 < len && Character.isDigit(name.charAt(idx + 1))) return true;
|
||||
idx = name.indexOf('$', idx + 1);
|
||||
}
|
||||
|
||||
return false;
|
||||
return ClassFileViewProvider.isInnerClass(file);
|
||||
}
|
||||
|
||||
private static class VirtualFileInnerClassStrategy implements InnerClassSourceStrategy<VirtualFile> {
|
||||
|
||||
Reference in New Issue
Block a user