IJPL-930 Add CLASSES and SOURCES instances for SdkRootTypeId

GitOrigin-RevId: 415eba10aafc8bd4f2053dab7c7c906a572efd59
This commit is contained in:
Ilya Korennoy
2026-02-06 16:05:51 +00:00
committed by intellij-monorepo-bot
parent 27a3789b65
commit c4f3cc9454
3 changed files with 15 additions and 7 deletions
@@ -13,7 +13,6 @@ import com.intellij.openapi.roots.JdkOrderEntry;
import com.intellij.openapi.roots.LibraryOrderEntry;
import com.intellij.openapi.roots.ModuleOrderEntry;
import com.intellij.openapi.roots.OrderEntry;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.ProjectFileIndex;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.registry.Registry;
@@ -29,6 +28,7 @@ import com.intellij.platform.workspace.jps.entities.ModuleEntity;
import com.intellij.platform.workspace.jps.entities.SdkEntity;
import com.intellij.platform.workspace.jps.entities.SdkId;
import com.intellij.platform.workspace.jps.entities.SdkRoot;
import com.intellij.platform.workspace.jps.entities.SdkRootTypeId;
import com.intellij.platform.workspace.storage.ImmutableEntityStorage;
import com.intellij.psi.search.DelegatingGlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScope;
@@ -37,7 +37,6 @@ import com.intellij.util.containers.ConcurrentFactoryMap;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.graph.Graph;
import com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleExportedDependenciesGraph;
import com.intellij.workspaceModel.ide.impl.legacyBridge.sdk.SdkBridgeImplKt;
import com.intellij.workspaceModel.ide.legacyBridge.ModuleBridges;
import kotlin.sequences.SequencesKt;
import org.jetbrains.annotations.ApiStatus;
@@ -197,18 +196,16 @@ public final class LibraryScopeCache {
final String name = sdkEntity.getName();
GlobalSearchScope scope = mySdkScopes.get(name);
if (scope == null) {
String sdkSourcesRootTypeName = SdkBridgeImplKt.getCustomName(OrderRootType.SOURCES);
String sdkClassesRootTypeName = SdkBridgeImplKt.getCustomName(OrderRootType.CLASSES);
var roots = sdkEntity.getRoots();
var sources = roots.stream()
.filter(root -> Objects.equals(root.getType().getName(), sdkSourcesRootTypeName))
.filter(root -> Objects.equals(root.getType(), SdkRootTypeId.SOURCES))
.map(SdkRoot::getUrl)
.map(VirtualFileUrls::getVirtualFile)
.toArray(VirtualFile[]::new);
var classes = roots.stream()
.filter(root -> Objects.equals(root.getType().getName(), sdkClassesRootTypeName))
.filter(root -> Objects.equals(root.getType(), SdkRootTypeId.CLASSES))
.map(SdkRoot::getUrl)
.map(VirtualFileUrls::getVirtualFile)
.toArray(VirtualFile[]::new);
+4
View File
@@ -1332,6 +1332,9 @@ f:com.intellij.platform.workspace.jps.entities.SdkRoot
- hashCode():I
f:com.intellij.platform.workspace.jps.entities.SdkRootTypeId
- java.io.Serializable
- sf:CLASSES:com.intellij.platform.workspace.jps.entities.SdkRootTypeId
- sf:Companion:com.intellij.platform.workspace.jps.entities.SdkRootTypeId$Companion
- sf:SOURCES:com.intellij.platform.workspace.jps.entities.SdkRootTypeId
- <init>(java.lang.String):V
- f:component1():java.lang.String
- f:copy(java.lang.String):com.intellij.platform.workspace.jps.entities.SdkRootTypeId
@@ -1339,6 +1342,7 @@ f:com.intellij.platform.workspace.jps.entities.SdkRootTypeId
- equals(java.lang.Object):Z
- f:getName():java.lang.String
- hashCode():I
f:com.intellij.platform.workspace.jps.entities.SdkRootTypeId$Companion
com.intellij.platform.workspace.jps.entities.SourceRootEntity
- com.intellij.platform.workspace.storage.WorkspaceEntity
- sf:Companion:com.intellij.platform.workspace.jps.entities.SourceRootEntity$Companion
@@ -53,4 +53,11 @@ fun MutableEntityStorage.modifySdkEntity(
data class SdkRoot(val url: VirtualFileUrl, val type: SdkRootTypeId) : Serializable
data class SdkRootTypeId(val name: @NonNls String) : Serializable
data class SdkRootTypeId(val name: @NonNls String) : Serializable {
companion object {
@JvmField
val CLASSES: SdkRootTypeId = SdkRootTypeId("classPath")
@JvmField
val SOURCES: SdkRootTypeId = SdkRootTypeId("sourcePath")
}
}