mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[platform] Reduce uses of obsolete DirectoryIndex; WorkspaceFileIndexEx#getInstance
GitOrigin-RevId: d966aa013eaa3ad63e407d917d7cd6dcb68ee883
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c556b1b564
commit
35a42d780f
@@ -11,17 +11,18 @@ import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.FilteredQuery;
|
||||
import com.intellij.util.Query;
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public final class ModulePackageIndexImpl extends ModulePackageIndex {
|
||||
private static final Logger LOG = Logger.getInstance(ModulePackageIndexImpl.class);
|
||||
private final ModuleFileIndex myModuleFileIndex;
|
||||
private final DirectoryIndex myDirectoryIndex;
|
||||
private final WorkspaceFileIndexEx myWorkspaceFileIndex;
|
||||
|
||||
public ModulePackageIndexImpl(@NotNull Module module) {
|
||||
myModuleFileIndex = ModuleRootManager.getInstance(module).getFileIndex();
|
||||
myDirectoryIndex = DirectoryIndex.getInstance(module.getProject());
|
||||
myWorkspaceFileIndex = WorkspaceFileIndexEx.getInstance(module.getProject());
|
||||
}
|
||||
|
||||
private final Condition<VirtualFile> myDirCondition = new Condition<>() {
|
||||
@@ -33,17 +34,17 @@ public final class ModulePackageIndexImpl extends ModulePackageIndex {
|
||||
|
||||
@Override
|
||||
public @NotNull Query<VirtualFile> getDirsByPackageName(@NotNull @NlsSafe String packageName, boolean includeLibrarySources) {
|
||||
return new FilteredQuery<>(myDirectoryIndex.getDirectoriesByPackageName(packageName, includeLibrarySources), myDirCondition);
|
||||
return new FilteredQuery<>(myWorkspaceFileIndex.getDirectoriesByPackageName(packageName, includeLibrarySources), myDirCondition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Query<VirtualFile> getFilesByPackageName(@NotNull String packageName) {
|
||||
return new FilteredQuery<>(myDirectoryIndex.getFilesByPackageName(packageName), myDirCondition);
|
||||
return new FilteredQuery<>(myWorkspaceFileIndex.getFilesByPackageName(packageName), myDirCondition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable String getPackageName(@NotNull VirtualFile fileOrDir) {
|
||||
return myDirectoryIndex.getPackageName(fileOrDir);
|
||||
return myWorkspaceFileIndex.getPackageName(fileOrDir);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -51,6 +52,6 @@ public final class ModulePackageIndexImpl extends ModulePackageIndex {
|
||||
if (!dir.isDirectory()) {
|
||||
LOG.error(dir.getPresentableUrl() + " is not a directory");
|
||||
}
|
||||
return myDirectoryIndex.getPackageName(dir);
|
||||
return myWorkspaceFileIndex.getPackageName(dir);
|
||||
}
|
||||
}
|
||||
|
||||
+8
-7
@@ -8,6 +8,7 @@ import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.Query;
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -16,32 +17,32 @@ import org.jetbrains.annotations.Nullable;
|
||||
public final class ProjectPackageIndexImpl extends PackageIndex {
|
||||
private static final Logger LOG = Logger.getInstance(ProjectPackageIndexImpl.class);
|
||||
|
||||
private final DirectoryIndex myDirectoryIndex;
|
||||
private final WorkspaceFileIndexEx myWorkspaceFileIndex;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public ProjectPackageIndexImpl(@NotNull Project project) {
|
||||
myDirectoryIndex = DirectoryIndex.getInstance(project);
|
||||
myWorkspaceFileIndex = WorkspaceFileIndexEx.getInstance(project);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Query<VirtualFile> getDirsByPackageName(@NotNull @NlsSafe String packageName,
|
||||
@NotNull GlobalSearchScope scope) {
|
||||
return myDirectoryIndex.getDirectoriesByPackageName(packageName, scope);
|
||||
return myWorkspaceFileIndex.getDirectoriesByPackageName(packageName, scope);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Query<VirtualFile> getFilesByPackageName(@NotNull String packageName) {
|
||||
return myDirectoryIndex.getFilesByPackageName(packageName);
|
||||
return myWorkspaceFileIndex.getFilesByPackageName(packageName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Query<VirtualFile> getDirsByPackageName(@NotNull @NlsSafe String packageName, boolean includeLibrarySources) {
|
||||
return myDirectoryIndex.getDirectoriesByPackageName(packageName, includeLibrarySources);
|
||||
return myWorkspaceFileIndex.getDirectoriesByPackageName(packageName, includeLibrarySources);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable String getPackageName(@NotNull VirtualFile fileOrDir) {
|
||||
return myDirectoryIndex.getPackageName(fileOrDir);
|
||||
return myWorkspaceFileIndex.getPackageName(fileOrDir);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -49,6 +50,6 @@ public final class ProjectPackageIndexImpl extends PackageIndex {
|
||||
if (!dir.isDirectory()) {
|
||||
LOG.error(dir.getPresentableUrl() + " is not a directory");
|
||||
}
|
||||
return myDirectoryIndex.getPackageName(dir);
|
||||
return myWorkspaceFileIndex.getPackageName(dir);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.TestSourcesFilter;
|
||||
import com.intellij.openapi.roots.impl.DirectoryIndex;
|
||||
import com.intellij.openapi.roots.ui.configuration.CommonContentEntriesEditor;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
@@ -29,6 +28,7 @@ import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.Query;
|
||||
import com.intellij.util.ThreeState;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -47,7 +47,7 @@ public final class PlatformPackageUtil {
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static String getPackageName(@NotNull VirtualFile directory, @NotNull Project project) {
|
||||
return DirectoryIndex.getInstance(project).getPackageName(directory);
|
||||
return WorkspaceFileIndexEx.getInstance(project).getPackageName(directory);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,7 +56,7 @@ public final class PlatformPackageUtil {
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static @NotNull Query<VirtualFile> getDirectoriesByPackageName(@NotNull String packageName, boolean includeLibrarySources, @NotNull Project project) {
|
||||
return DirectoryIndex.getInstance(project).getDirectoriesByPackageName(packageName, includeLibrarySources);
|
||||
return WorkspaceFileIndexEx.getInstance(project).getDirectoriesByPackageName(packageName, includeLibrarySources);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,7 +65,7 @@ public final class PlatformPackageUtil {
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static Query<VirtualFile> getDirectoriesByPackageName(@NotNull String packageName, @NotNull GlobalSearchScope scope, @NotNull Project project) {
|
||||
return DirectoryIndex.getInstance(project).getDirectoriesByPackageName(packageName, true).filtering(scope::contains);
|
||||
return WorkspaceFileIndexEx.getInstance(project).getDirectoriesByPackageName(packageName, true).filtering(scope::contains);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
-3
@@ -43,7 +43,6 @@ import com.intellij.util.indexing.EntityIndexingService
|
||||
import com.intellij.util.indexing.ProjectEntityIndexingService
|
||||
import com.intellij.util.indexing.roots.WorkspaceIndexingRootsBuilder
|
||||
import com.intellij.workspaceModel.core.fileIndex.EntityStorageKind
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndex
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndexContributor
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.PlatformInternalWorkspaceFileIndexContributor
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx
|
||||
@@ -240,7 +239,7 @@ open class ProjectRootManagerComponent(
|
||||
try {
|
||||
@Suppress("UsagesOfObsoleteApi")
|
||||
(DirectoryIndex.getInstance(project) as? DirectoryIndexImpl)?.reset()
|
||||
(WorkspaceFileIndex.getInstance(project) as WorkspaceFileIndexEx).indexData.resetCustomContributors()
|
||||
WorkspaceFileIndexEx.getInstance(project).indexData.resetCustomContributors()
|
||||
project.messageBus.syncPublisher(ModuleRootListener.TOPIC).beforeRootsChange(ModuleRootEventImpl(project, fileTypes))
|
||||
}
|
||||
finally {
|
||||
@@ -253,7 +252,7 @@ open class ProjectRootManagerComponent(
|
||||
try {
|
||||
@Suppress("UsagesOfObsoleteApi")
|
||||
(DirectoryIndex.getInstance(project) as? DirectoryIndexImpl)?.reset()
|
||||
(WorkspaceFileIndex.getInstance(project) as WorkspaceFileIndexEx).indexData.resetCustomContributors()
|
||||
WorkspaceFileIndexEx.getInstance(project).indexData.resetCustomContributors()
|
||||
|
||||
val isFromWorkspaceOnly = EntityIndexingService.getInstance().isFromWorkspaceOnly(indexingInfos)
|
||||
project.messageBus.syncPublisher(ModuleRootListener.TOPIC)
|
||||
|
||||
+4
-4
@@ -25,7 +25,7 @@ import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndex
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileKind
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileSetWithCustomData
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.ModuleRelatedRootData
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexImpl
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx
|
||||
import com.intellij.workspaceModel.ide.impl.legacyBridge.library.ProjectLibraryTableBridgeImpl.Companion.libraryMap
|
||||
import com.intellij.workspaceModel.ide.impl.legacyBridge.module.findModule
|
||||
import com.intellij.workspaceModel.ide.legacyBridge.ModuleDependencyIndex
|
||||
@@ -58,7 +58,7 @@ class IndexingIteratorsProviderImpl(
|
||||
|
||||
private fun doGetIndexingIterators(): List<IndexableFilesIterator> {
|
||||
val model = WorkspaceModel.getInstance(project)
|
||||
val index = WorkspaceFileIndex.getInstance(project) as WorkspaceFileIndexImpl
|
||||
val index = WorkspaceFileIndexEx.getInstance(project)
|
||||
val storage = model.currentSnapshot
|
||||
val virtualFileUrlManager = model.getVirtualFileUrlManager()
|
||||
val moduleDependencyIndex by lazy { ModuleDependencyIndex.getInstance(project) }
|
||||
@@ -175,12 +175,12 @@ class IndexingIteratorsProviderImpl(
|
||||
return iterators
|
||||
}
|
||||
|
||||
private fun isNestedRootOfModuleContent(root: VirtualFile, module: Module, workspaceFileIndexImpl: WorkspaceFileIndexImpl): Boolean {
|
||||
private fun isNestedRootOfModuleContent(root: VirtualFile, module: Module, workspaceFileIndex: WorkspaceFileIndexEx): Boolean {
|
||||
val parent = root.getParent()
|
||||
if (parent == null) {
|
||||
return false
|
||||
}
|
||||
val fileInfo = workspaceFileIndexImpl.getFileInfo(
|
||||
val fileInfo = workspaceFileIndex.getFileInfo(
|
||||
parent,
|
||||
honorExclusion = false,
|
||||
includeContentSets = true,
|
||||
|
||||
+1
-2
@@ -15,7 +15,6 @@ import com.intellij.platform.backend.workspace.WorkspaceModel
|
||||
import com.intellij.platform.workspace.jps.entities.*
|
||||
import com.intellij.platform.workspace.storage.EntityPointer
|
||||
import com.intellij.platform.workspace.storage.ImmutableEntityStorage
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndex
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileSet
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.LibrariesAndSdkContributors
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx
|
||||
@@ -30,7 +29,7 @@ import org.jetbrains.annotations.ApiStatus
|
||||
internal class ProjectModelEntityContextProvider : CodeInsightContextProvider {
|
||||
|
||||
override fun getContexts(file: VirtualFile, project: Project): List<CodeInsightContext> {
|
||||
val workspaceFileIndex = WorkspaceFileIndex.getInstance(project) as WorkspaceFileIndexEx
|
||||
val workspaceFileIndex = WorkspaceFileIndexEx.getInstance(project)
|
||||
|
||||
val fileSets = workspaceFileIndex.findFileSets(
|
||||
file = file,
|
||||
|
||||
@@ -7,8 +7,8 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.EmptyQuery;
|
||||
import com.intellij.util.Query;
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -30,21 +30,24 @@ public abstract class DirectoryIndex {
|
||||
return project.getService(DirectoryIndex.class);
|
||||
}
|
||||
|
||||
public abstract @NotNull
|
||||
Query<VirtualFile> getDirectoriesByPackageName(@NotNull String packageName, boolean includeLibrarySources);
|
||||
/**
|
||||
* @deprecated use {@link WorkspaceFileIndexEx#getDirectoriesByPackageName(String, boolean)}}
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract @NotNull Query<VirtualFile> getDirectoriesByPackageName(@NotNull String packageName, boolean includeLibrarySources);
|
||||
|
||||
/**
|
||||
* @return a query producing single file source root files which correspond to {@code packageName}.
|
||||
* @deprecated use {@link WorkspaceFileIndexEx#getDirectoriesByPackageName(String, GlobalSearchScope)}}
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public @NotNull Query<VirtualFile> getFilesByPackageName(@NotNull String packageName) {
|
||||
return EmptyQuery.getEmptyQuery();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Query<VirtualFile> getDirectoriesByPackageName(@NotNull String packageName, @NotNull GlobalSearchScope scope) {
|
||||
return getDirectoriesByPackageName(packageName, true).filtering(scope::contains);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link WorkspaceFileIndexEx#getPackageName(VirtualFile)}}
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract @Nullable String getPackageName(@NotNull VirtualFile fileOrDir);
|
||||
|
||||
public abstract @NotNull List<OrderEntry> getOrderEntries(@NotNull VirtualFile fileOrDir);
|
||||
|
||||
@@ -102,11 +102,6 @@ public final class DirectoryIndexImpl extends DirectoryIndex implements Disposab
|
||||
return myWorkspaceFileIndex.getDirectoriesByPackageName(packageName, includeLibrarySources);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Query<VirtualFile> getFilesByPackageName(@NotNull String packageName) {
|
||||
return myWorkspaceFileIndex.getFilesByPackageName(packageName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Query<VirtualFile> getDirectoriesByPackageName(@NotNull String packageName,
|
||||
@NotNull GlobalSearchScope scope) {
|
||||
|
||||
+1
-1
@@ -185,7 +185,7 @@ public class ProjectFileIndexImpl extends FileIndexBase implements ProjectFileIn
|
||||
@Override
|
||||
public String getPackageNameByDirectory(@NotNull VirtualFile dir) {
|
||||
if (!dir.isDirectory()) LOG.error(dir.getPresentableUrl());
|
||||
return myDirectoryIndex.getPackageName(dir);
|
||||
return myWorkspaceFileIndex.getPackageName(dir);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+5
@@ -2,6 +2,7 @@
|
||||
package com.intellij.workspaceModel.core.fileIndex.impl
|
||||
|
||||
import com.intellij.openapi.components.serviceIfCreated
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.project.ProjectManager
|
||||
import com.intellij.openapi.roots.ContentIteratorEx
|
||||
import com.intellij.openapi.vfs.AsyncFileListener
|
||||
@@ -20,6 +21,10 @@ import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileSetWithCustomData
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
interface WorkspaceFileIndexEx : WorkspaceFileIndex {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun getInstance(project: Project): WorkspaceFileIndexEx = WorkspaceFileIndex.getInstance(project) as WorkspaceFileIndexEx
|
||||
}
|
||||
/**
|
||||
* An internal variant of [findFileSetWithCustomData] method which provides more information if [file] isn't included in the workspace
|
||||
* or if multiple file sets are associated with [file].
|
||||
|
||||
+1
-2
@@ -10,7 +10,6 @@ import com.intellij.platform.workspace.storage.EntityPointer
|
||||
import com.intellij.platform.workspace.storage.WorkspaceEntity
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.util.SmartList
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileIndex
|
||||
import com.intellij.workspaceModel.core.fileIndex.WorkspaceFileSetWithCustomData
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexEx
|
||||
import com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileSetRecognizer
|
||||
@@ -64,7 +63,7 @@ internal object CandidateCollector {
|
||||
val originalVirtualFileForOutsider = if (isOutsiderFile(virtualFile)) getOutsiderFileOrigin(project, virtualFile) else null
|
||||
|
||||
val workspaceModel = WorkspaceModel.Companion.getInstance(project)
|
||||
val workspaceFileIndex = WorkspaceFileIndex.Companion.getInstance(project) as WorkspaceFileIndexEx
|
||||
val workspaceFileIndex = WorkspaceFileIndexEx.Companion.getInstance(project)
|
||||
val fileSets = workspaceFileIndex.getFileInfo(
|
||||
originalVirtualFileForOutsider ?: virtualFile,
|
||||
honorExclusion = false,
|
||||
|
||||
Reference in New Issue
Block a user