shared index: pushed property update should not be the reason to shared index invalidation

GitOrigin-RevId: 718bccd1b2faa73d16e00653d9f3eb387ef2bdd3
This commit is contained in:
Dmitry Batkovich
2020-05-14 15:38:48 +00:00
committed by intellij-monorepo-bot
parent 29b1e3ef39
commit 01e495dcfc
2 changed files with 9 additions and 7 deletions
@@ -32,10 +32,7 @@ import com.intellij.psi.impl.PsiManagerEx;
import com.intellij.psi.impl.file.impl.FileManagerImpl;
import com.intellij.ui.GuiUtils;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.indexing.FileBasedIndex;
import com.intellij.util.indexing.FileBasedIndexProjectHandler;
import com.intellij.util.indexing.IndexingBundle;
import com.intellij.util.indexing.UnindexedFilesUpdater;
import com.intellij.util.indexing.*;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -388,7 +385,7 @@ public final class PushedFilePropertiesUpdaterImpl extends PushedFilePropertiesU
@Override
public void filePropertiesChanged(@NotNull final VirtualFile file) {
ApplicationManager.getApplication().assertReadAccessAllowed();
FileBasedIndex.getInstance().requestReindex(file);
((FileBasedIndexImpl)FileBasedIndex.getInstance()).requestReindex(file, false);
for (final Project project : ProjectManager.getInstance().getOpenProjects()) {
reloadPsi(file, project);
}
@@ -285,14 +285,19 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx {
}
@Override
public void requestReindex(@NotNull final VirtualFile file) {
public void requestReindex(@NotNull VirtualFile file) {
requestReindex(file, true);
}
@ApiStatus.Internal
public void requestReindex(@NotNull VirtualFile file, boolean forceRebuildRequest) {
GistManager.getInstance().invalidateData();
// todo: this is the same vfs event handling sequence that is produces after events of FileContentUtilCore.reparseFiles
// but it is more costly than current code, see IDEA-192192
//myChangedFilesCollector.invalidateIndicesRecursively(file, false);
//myChangedFilesCollector.buildIndicesForFileRecursively(file, false);
ChangedFilesCollector changedFilesCollector = getChangedFilesCollector();
changedFilesCollector.invalidateIndicesRecursively(file, true, true, changedFilesCollector.getEventMerger());
changedFilesCollector.invalidateIndicesRecursively(file, true, forceRebuildRequest, changedFilesCollector.getEventMerger());
if (myRegisteredIndexes.isInitialized()) {
changedFilesCollector.ensureUpToDateAsync();
}