Classes by package index now contains only top-level classes
This commit is contained in:
+2
-2
@@ -41,7 +41,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.plugin.decompiler.navigation.JetSourceNavigationHelper;
|
import org.jetbrains.jet.plugin.decompiler.navigation.JetSourceNavigationHelper;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
||||||
import org.jetbrains.jet.plugin.stubindex.JetClassByPackageIndex;
|
import org.jetbrains.jet.plugin.stubindex.JetTopLevelClassByPackageIndex;
|
||||||
import org.jetbrains.jet.plugin.stubindex.JetFullClassNameIndex;
|
import org.jetbrains.jet.plugin.stubindex.JetFullClassNameIndex;
|
||||||
import org.jetbrains.jet.plugin.stubindex.PackageIndexUtil;
|
import org.jetbrains.jet.plugin.stubindex.PackageIndexUtil;
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport
|
|||||||
public Collection<JetClassOrObject> findClassOrObjectDeclarationsInPackage(
|
public Collection<JetClassOrObject> findClassOrObjectDeclarationsInPackage(
|
||||||
@NotNull FqName packageFqName, @NotNull GlobalSearchScope searchScope
|
@NotNull FqName packageFqName, @NotNull GlobalSearchScope searchScope
|
||||||
) {
|
) {
|
||||||
return JetClassByPackageIndex.getInstance().get(packageFqName.asString(), project, kotlinSources(searchScope, project));
|
return JetTopLevelClassByPackageIndex.getInstance().get(packageFqName.asString(), project, kotlinSources(searchScope, project));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+5
-5
@@ -25,16 +25,16 @@ import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
public class JetClassByPackageIndex extends StringStubIndexExtension<JetClassOrObject> {
|
public class JetTopLevelClassByPackageIndex extends StringStubIndexExtension<JetClassOrObject> {
|
||||||
private static final StubIndexKey<String, JetClassOrObject> KEY = KotlinIndexUtil.createIndexKey(JetClassByPackageIndex.class);
|
private static final StubIndexKey<String, JetClassOrObject> KEY = KotlinIndexUtil.createIndexKey(JetTopLevelClassByPackageIndex.class);
|
||||||
|
|
||||||
private static final JetClassByPackageIndex ourInstance = new JetClassByPackageIndex();
|
private static final JetTopLevelClassByPackageIndex ourInstance = new JetTopLevelClassByPackageIndex();
|
||||||
|
|
||||||
public static JetClassByPackageIndex getInstance() {
|
public static JetTopLevelClassByPackageIndex getInstance() {
|
||||||
return ourInstance;
|
return ourInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JetClassByPackageIndex() {}
|
private JetTopLevelClassByPackageIndex() {}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
+11
-14
@@ -41,13 +41,16 @@ public class StubIndexServiceImpl implements StubIndexService {
|
|||||||
sink.occurrence(JetClassShortNameIndex.getInstance().getKey(), name);
|
sink.occurrence(JetClassShortNameIndex.getInstance().getKey(), name);
|
||||||
}
|
}
|
||||||
|
|
||||||
FqName fqn = stub.getFqName();
|
FqName fqName = stub.getFqName();
|
||||||
if (fqn != null) {
|
if (fqName != null) {
|
||||||
sink.occurrence(JetFullClassNameIndex.getInstance().getKey(), fqn.asString());
|
sink.occurrence(JetFullClassNameIndex.getInstance().getKey(), fqName.asString());
|
||||||
|
|
||||||
|
if (stub.isTopLevel()) {
|
||||||
|
sink.occurrence(JetTopLevelClassByPackageIndex.getInstance().getKey(), fqName.parent().asString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
indexSuperNames(stub, sink);
|
indexSuperNames(stub, sink);
|
||||||
recordClassOrObjectByPackage(stub, sink);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -78,10 +81,13 @@ public class StubIndexServiceImpl implements StubIndexService {
|
|||||||
|
|
||||||
if (fqName != null) {
|
if (fqName != null) {
|
||||||
sink.occurrence(JetFullClassNameIndex.getInstance().getKey(), fqName.asString());
|
sink.occurrence(JetFullClassNameIndex.getInstance().getKey(), fqName.asString());
|
||||||
|
|
||||||
|
if (stub.isTopLevel()) {
|
||||||
|
sink.occurrence(JetTopLevelClassByPackageIndex.getInstance().getKey(), fqName.parent().asString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
indexSuperNames(stub, sink);
|
indexSuperNames(stub, sink);
|
||||||
recordClassOrObjectByPackage(stub, sink);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void indexSuperNames(KotlinClassOrObjectStub<? extends JetClassOrObject> stub, IndexSink sink) {
|
private static void indexSuperNames(KotlinClassOrObjectStub<? extends JetClassOrObject> stub, IndexSink sink) {
|
||||||
@@ -90,15 +96,6 @@ public class StubIndexServiceImpl implements StubIndexService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void recordClassOrObjectByPackage(StubElement<? extends JetClassOrObject> stub, IndexSink sink) {
|
|
||||||
StubElement parentStub = stub.getParentStub();
|
|
||||||
if (parentStub instanceof KotlinFileStub) {
|
|
||||||
KotlinFileStub jetFileStub = (KotlinFileStub) parentStub;
|
|
||||||
FqName packageFqName = jetFileStub.getPackageFqName();
|
|
||||||
sink.occurrence(JetClassByPackageIndex.getInstance().getKey(), packageFqName.asString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void indexFunction(KotlinFunctionStub stub, IndexSink sink) {
|
public void indexFunction(KotlinFunctionStub stub, IndexSink sink) {
|
||||||
String name = stub.getName();
|
String name = stub.getName();
|
||||||
|
|||||||
+1
-2
@@ -31,7 +31,6 @@ import org.jetbrains.jet.lang.resolve.lazy.data.JetClassInfoUtil
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils
|
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.jet.plugin.stubindex.JetClassByPackageIndex
|
|
||||||
import org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionByPackageIndex
|
import org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionByPackageIndex
|
||||||
import com.intellij.psi.stubs.StringStubIndexExtension
|
import com.intellij.psi.stubs.StringStubIndexExtension
|
||||||
import org.jetbrains.jet.plugin.stubindex.JetTopLevelPropertyByPackageIndex
|
import org.jetbrains.jet.plugin.stubindex.JetTopLevelPropertyByPackageIndex
|
||||||
@@ -50,7 +49,7 @@ public class StubBasedPackageMemberDeclarationProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.CLASSIFIERS_MASK)) {
|
if (kindFilter.acceptsKinds(DescriptorKindFilter.CLASSIFIERS_MASK)) {
|
||||||
addFromIndex(JetClassByPackageIndex.getInstance())
|
addFromIndex(org.jetbrains.jet.plugin.stubindex.JetTopLevelClassByPackageIndex.getInstance())
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) {
|
if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) {
|
||||||
|
|||||||
@@ -394,7 +394,7 @@
|
|||||||
|
|
||||||
<stubElementTypeHolder class="org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes"/>
|
<stubElementTypeHolder class="org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes"/>
|
||||||
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetExactPackagesIndex"/>
|
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetExactPackagesIndex"/>
|
||||||
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetClassByPackageIndex"/>
|
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetTopLevelClassByPackageIndex"/>
|
||||||
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionByPackageIndex"/>
|
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionByPackageIndex"/>
|
||||||
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetTopLevelPropertyByPackageIndex"/>
|
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetTopLevelPropertyByPackageIndex"/>
|
||||||
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetClassShortNameIndex"/>
|
<stubIndex implementation="org.jetbrains.jet.plugin.stubindex.JetClassShortNameIndex"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user