diff --git a/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatus.java b/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatus.java index 4b57f9cf327d..12d4d908d08b 100644 --- a/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatus.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatus.java @@ -59,6 +59,8 @@ public interface FileStatus { FileStatus SWITCHED = FileStatusFactory.getInstance().createFileStatus("SWITCHED", VcsBundle.message("file.status.name.switched"), COLOR_SWITCHED); FileStatus OBSOLETE = FileStatusFactory.getInstance().createFileStatus("OBSOLETE", VcsBundle.message("file.status.name.obsolete"), COLOR_OUT_OF_DATE); + FileStatus SUPPRESSED = FileStatusFactory.getInstance().createFileStatus("SUPPRESSED", VcsBundle.message("file.status.name.suppressed"), COLOR_NOT_CHANGED); + String getText(); Color getColor(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vcs/impl/FileStatusManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vcs/impl/FileStatusManagerImpl.java index c4f2890d9ea0..d7284f8590ea 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vcs/impl/FileStatusManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vcs/impl/FileStatusManagerImpl.java @@ -39,9 +39,9 @@ import com.intellij.openapi.util.NotNullLazyValue; import com.intellij.openapi.vcs.FileStatus; import com.intellij.openapi.vcs.FileStatusListener; import com.intellij.openapi.vcs.FileStatusManager; +import com.intellij.openapi.vfs.NonPhysicalFileSystem; import com.intellij.openapi.vfs.VFileProperty; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.ThreeState; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; @@ -270,8 +270,8 @@ public class FileStatusManagerImpl extends FileStatusManager implements ProjectC @Override public FileStatus getStatus(@NotNull final VirtualFile file) { - if (file instanceof LightVirtualFile) { - return FileStatus.NOT_CHANGED; // do not leak light files via cache + if (file.getFileSystem() instanceof NonPhysicalFileSystem) { + return FileStatus.SUPPRESSED; // do not leak light files via cache } FileStatus status = getCachedStatus(file); diff --git a/platform/platform-resources-en/src/messages/VcsBundle.properties b/platform/platform-resources-en/src/messages/VcsBundle.properties index 3190e32d472f..dbc4160bb3e4 100644 --- a/platform/platform-resources-en/src/messages/VcsBundle.properties +++ b/platform/platform-resources-en/src/messages/VcsBundle.properties @@ -12,6 +12,7 @@ file.status.name.merged.with.conflicts=Merged with conflicts file.status.name.merged.with.both.conflicts=Merged with text and property conflicts file.status.name.merged.with.property.conflicts=Merged with property conflicts file.status.name.deleted.from.file.system=Deleted from file system +file.status.name.suppressed=Suppressed none.vcs.presentation= vcs.command.name.add=Add vcs.command.name.remove=Remove diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/VcsFileStatusProvider.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/VcsFileStatusProvider.java index 2f128221327a..75c8172f8918 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/VcsFileStatusProvider.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/VcsFileStatusProvider.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.vcs.impl; +import com.intellij.ide.scratch.ScratchUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; @@ -100,6 +101,9 @@ public class VcsFileStatusProvider implements FileStatusProvider, VcsBaseContent public FileStatus getFileStatus(@NotNull final VirtualFile virtualFile) { final AbstractVcs vcs = myVcsManager.getVcsFor(virtualFile); if (vcs == null) { + if (ScratchUtil.isScratch(virtualFile)) { + return FileStatus.SUPPRESSED; + } return FileStatusManagerImpl.getDefaultStatus(virtualFile); }