From ff11452e25c8172759e808bbcd48ead70079ce72 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 14 Jul 2017 18:57:18 +0300 Subject: [PATCH] reduce latency on typing in non-project files --- .../openapi/fileEditor/impl/IdeDocumentHistoryImpl.java | 4 ++++ .../impl/NonProjectFileWritingAccessProvider.java | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java index b792a259c1bb..15793c351689 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java @@ -298,6 +298,10 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Projec return VfsUtilCore.toVirtualFileArray(files); } + public boolean isRecentlyChanged(@NotNull VirtualFile file) { + return myRecentlyChangedFiles.CHANGED_PATHS.contains(file.getPath()); + } + @Override public final void clearHistory() { myBackPlaces.clear(); diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/NonProjectFileWritingAccessProvider.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/NonProjectFileWritingAccessProvider.java index c3270ec73d20..d6ae49596733 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/NonProjectFileWritingAccessProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/NonProjectFileWritingAccessProvider.java @@ -34,7 +34,6 @@ import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.vfs.*; import com.intellij.openapi.vfs.ex.temp.TempFileSystem; import com.intellij.project.ProjectKt; -import com.intellij.util.ArrayUtil; import com.intellij.util.NullableFunction; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; @@ -121,8 +120,10 @@ public class NonProjectFileWritingAccessProvider extends WritingAccessProvider { if (!(file.getFileSystem() instanceof LocalFileSystem)) return true; // do not block e.g., HttpFileSystem, LightFileSystem etc. if (file.getFileSystem() instanceof TempFileSystem) return true; - - if (ArrayUtil.contains(file, IdeDocumentHistory.getInstance(project).getChangedFiles())) return true; + + IdeDocumentHistoryImpl documentHistory = (IdeDocumentHistoryImpl)IdeDocumentHistory.getInstance(project); + + if (documentHistory.isRecentlyChanged(file)) return true; if (!getApp().isUnitTestMode() && FileUtil.isAncestor(new File(FileUtil.getTempDirectory()), VfsUtilCore.virtualToIoFile(file), true)) {