add non-physical file systems to project scopes
authorGregory.Shrago <gregory.shrago@jetbrains.com>
Sat, 2 May 2020 20:44:32 +0000 (23:44 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Sat, 2 May 2020 23:33:37 +0000 (23:33 +0000)
GitOrigin-RevId: dc34cbfc2562b234b0cd9d8ebeb19662fb30eb5d

platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java
platform/core-impl/src/com/intellij/psi/search/ProjectScopeImpl.java
platform/lang-impl/src/com/intellij/psi/search/ProjectScopeBuilderImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectFileIndexFacade.java

index 13a5ef7447a8864e67c4599a9f972d76c63e4a64..06d6503c5f650e08be875da7b6a6c2dd93853159 100644 (file)
@@ -15,7 +15,6 @@
  */
 package com.intellij.openapi.roots;
 
-import com.intellij.injected.editor.VirtualFileWindow;
 import com.intellij.openapi.components.ServiceManager;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.UnloadedModuleDescription;
@@ -86,8 +85,6 @@ public abstract class FileIndexFacade {
    * @return true if the {@code file} is {@link #isInContent} except when it's in {@link #isInLibraryClasses} and not in {@link #isInLibrarySource}
    */
   public boolean isInProjectScope(@NotNull VirtualFile file) {
-    if (file instanceof VirtualFileWindow) return true;
-
     if (isInLibraryClasses(file) && !isInSourceContent(file)) return false;
 
     return isInContent(file);
index 97f42e77cd2b7bc9b3ec5b70799ffd2d2366b7f5..c03734353c9b1b58b48a640dbd981c04c1166d79 100644 (file)
@@ -20,6 +20,7 @@ import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.UnloadedModuleDescription;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.FileIndexFacade;
+import com.intellij.openapi.vfs.NonPhysicalFileSystem;
 import com.intellij.openapi.vfs.VirtualFile;
 import org.jetbrains.annotations.NotNull;
 
@@ -35,6 +36,7 @@ public class ProjectScopeImpl extends GlobalSearchScope {
 
   @Override
   public boolean contains(@NotNull VirtualFile file) {
+    if (file.getFileSystem() instanceof NonPhysicalFileSystem) return true;
     return myFileIndex.isInProjectScope(file);
   }
 
index e94429f527561e74ae22ded173f1e0863a31148a..de37404850be1501a5cc504e7729f86ff5909e35 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.openapi.roots.FileIndexFacade;
 import com.intellij.openapi.roots.ProjectRootManager;
 import com.intellij.openapi.roots.impl.DirectoryInfo;
 import com.intellij.openapi.roots.impl.ProjectFileIndexImpl;
+import com.intellij.openapi.vfs.NonPhysicalFileSystem;
 import com.intellij.openapi.vfs.VirtualFile;
 import org.jetbrains.annotations.NotNull;
 
@@ -78,6 +79,7 @@ public class ProjectScopeBuilderImpl extends ProjectScopeBuilder {
     return new ProjectAndLibrariesScope(myProject) {
       @Override
       public boolean contains(@NotNull VirtualFile file) {
+        if (file.getFileSystem() instanceof NonPhysicalFileSystem) return true;
         DirectoryInfo info = ((ProjectFileIndexImpl)myProjectFileIndex).getInfoForFileOrDirectory(file);
         return info.isInProject(file) &&
                (info.getModule() != null || info.hasLibraryClassRoot() || info.isInLibrarySource(file));
index 6cb74e6df77315a523db17f0d383963bc9bd5852..19b2cf3d55f3cafbb5415c3dc86ed3f001b43662 100644 (file)
@@ -1,7 +1,6 @@
 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.openapi.roots.impl;
 
-import com.intellij.injected.editor.VirtualFileWindow;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleManager;
 import com.intellij.openapi.module.UnloadedModuleDescription;
@@ -99,7 +98,6 @@ public class ProjectFileIndexFacade extends FileIndexFacade {
   @Override
   public boolean isInProjectScope(@NotNull VirtualFile file) {
     // optimization: equivalent to the super method but has fewer getInfoForFile() calls
-    if (file instanceof VirtualFileWindow) return true;
     DirectoryInfo info = myDirectoryIndex.getInfoForFile(file);
     if (!info.isInProject(file)) return false;
     if (info.hasLibraryClassRoot() && !info.isInModuleSource(file)) return false;