IJPL-219909 add method getWorkspaceContentFileSetRoot to ProjectFileIndex

Method calculating relative path for FilePatternPackageSet is static and has only ProjectFileIndex. Having this method will allow calculating relative path from any content file set root

GitOrigin-RevId: 84273a6b50c512ba52ab421e69bbf400155fb486
This commit is contained in:
Ilia Malakhov
2026-02-26 12:01:01 +00:00
committed by intellij-monorepo-bot
parent c29c894adc
commit 645f193d45
3 changed files with 15 additions and 0 deletions
@@ -176,4 +176,7 @@ final class LightEditProjectFileIndex implements ProjectFileIndex {
public @Nullable String getUnloadedModuleNameForFile(@NotNull VirtualFile fileOrDir) {
return null;
}
@Override
public @Nullable VirtualFile getWorkspaceContentFileSetRoot(@NotNull VirtualFile fileOrDir) { return null; }
}
@@ -4,6 +4,7 @@ package com.intellij.openapi.roots;
import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.IntellijInternalApi;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.platform.workspace.jps.entities.LibraryEntity;
import com.intellij.platform.workspace.jps.entities.SdkEntity;
@@ -227,4 +228,9 @@ public interface ProjectFileIndex extends FileIndex {
* to an unloaded module.
*/
@Nullable String getUnloadedModuleNameForFile(@NotNull VirtualFile fileOrDir);
/// Use [com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndex.getContentFileSetRoot] instead
@ApiStatus.Internal
@IntellijInternalApi
@Nullable VirtualFile getWorkspaceContentFileSetRoot(@NotNull VirtualFile fileOrDir);
}
@@ -18,6 +18,7 @@ import com.intellij.platform.workspace.jps.entities.SdkEntity;
import com.intellij.platform.workspace.storage.ImmutableEntityStorage;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndex;
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileKind;
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileSet;
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileSetWithCustomData;
@@ -317,6 +318,11 @@ public class ProjectFileIndexImpl extends FileIndexBase implements ProjectFileIn
return fileSet != null ? fileSet.getData().getModuleName() : null;
}
@Override
public @Nullable VirtualFile getWorkspaceContentFileSetRoot(@NotNull VirtualFile fileOrDir) {
return WorkspaceFileIndex.getInstance(myProject).getContentFileSetRoot(fileOrDir, true);
}
@Override
protected boolean isScopeDisposed() {
return myProject.isDisposed();