Implement SubpackagesIndexService#hasSubPackages()
Use it in PackageIndexUtil#packageExists()
This commit is contained in:
@@ -52,7 +52,8 @@ public final class PackageIndexUtil {
|
||||
@NotNull GlobalSearchScope searchScope,
|
||||
@NotNull Project project
|
||||
) {
|
||||
return containsAny(packageFqName, searchScope, project, JetAllPackagesIndex.getInstance().getKey());
|
||||
return containsAny(packageFqName, searchScope, project, JetExactPackagesIndex.getInstance().getKey())
|
||||
|| SubpackagesIndexService.OBJECT$.getInstance(project).hasSubpackages(packageFqName, searchScope);
|
||||
}
|
||||
|
||||
public static boolean containsAny(
|
||||
|
||||
@@ -53,6 +53,12 @@ public class SubpackagesIndexService(private val project: Project) {
|
||||
}
|
||||
}
|
||||
|
||||
public fun hasSubpackages(fqName: FqName, scope: GlobalSearchScope): Boolean {
|
||||
return fqNameByPrefix[fqName].any { packageWithFilesFqName ->
|
||||
PackageIndexUtil.containsAny(packageWithFilesFqName, scope, project, JetExactPackagesIndex.getInstance().getKey())
|
||||
}
|
||||
}
|
||||
|
||||
public fun getSubpackages(fqName: FqName, scope: GlobalSearchScope): Collection<FqName> {
|
||||
val possibleFilesFqNames = fqNameByPrefix[fqName]
|
||||
val existingSubPackagesShortNames = HashSet<Name>()
|
||||
|
||||
@@ -20,18 +20,22 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.plugin.stubindex.JetAllPackagesIndex;
|
||||
import org.jetbrains.jet.plugin.stubindex.JetExactPackagesIndex;
|
||||
import org.jetbrains.jet.plugin.stubindex.JetSourceFilterScope;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
public class PluginJetFilesProvider {
|
||||
|
||||
@NotNull
|
||||
public static Collection<JetFile> allFilesInProject(@NotNull Project project) {
|
||||
return JetAllPackagesIndex.getInstance().get(FqName.ROOT.asString(), project,
|
||||
JetSourceFilterScope.kotlinSources(GlobalSearchScope.allScope(project), project));
|
||||
Collection<JetFile> result = new ArrayList<JetFile>();
|
||||
GlobalSearchScope scope = JetSourceFilterScope.kotlinSources(GlobalSearchScope.allScope(project), project);
|
||||
for (String packageWithFiles : JetExactPackagesIndex.getInstance().getAllKeys(project)) {
|
||||
result.addAll(JetExactPackagesIndex.getInstance().get(packageWithFiles, project, scope));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private PluginJetFilesProvider() {
|
||||
|
||||
Reference in New Issue
Block a user