From 4901f8cab3be4ce781370f9dc3c73b07bcb96e2d Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 20 Aug 2015 09:41:20 +0200 Subject: [PATCH] IDEA-144023 Find usages: Correct processing for elements from additional index roots --- .../psi/impl/file/impl/ResolveScopeManagerImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/file/impl/ResolveScopeManagerImpl.java b/platform/indexing-impl/src/com/intellij/psi/impl/file/impl/ResolveScopeManagerImpl.java index 570a742238d0..bf83ef0cffb6 100644 --- a/platform/indexing-impl/src/com/intellij/psi/impl/file/impl/ResolveScopeManagerImpl.java +++ b/platform/indexing-impl/src/com/intellij/psi/impl/file/impl/ResolveScopeManagerImpl.java @@ -31,6 +31,7 @@ import com.intellij.psi.impl.ResolveScopeManager; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.SearchScope; import com.intellij.util.containers.ConcurrentFactoryMap; +import com.intellij.util.indexing.AdditionalIndexableFileSet; import org.jetbrains.annotations.NotNull; import java.util.List; @@ -60,6 +61,7 @@ public class ResolveScopeManagerImpl extends ResolveScopeManager { return scope; } }; + private AdditionalIndexableFileSet myAdditionalIndexableFileSet = new AdditionalIndexableFileSet(); public ResolveScopeManagerImpl(Project project, ProjectRootManager projectRootManager, PsiManager psiManager) { myProject = project; @@ -173,7 +175,12 @@ public class ResolveScopeManagerImpl extends ResolveScopeManager { final ProjectFileIndex projectFileIndex = myProjectRootManager.getFileIndex(); final Module module = projectFileIndex.getModuleForFile(vDirectory); if (module == null) { - final List entries = projectFileIndex.getOrderEntriesForFile(virtualFile != null ? virtualFile : vDirectory); + VirtualFile notNullVFile = virtualFile != null ? virtualFile : vDirectory; + final List entries = projectFileIndex.getOrderEntriesForFile(notNullVFile); + if (entries.isEmpty() && myAdditionalIndexableFileSet.isInSet(notNullVFile)) { + return allScope; + } + GlobalSearchScope result = LibraryScopeCache.getInstance(myProject).getLibraryUseScope(entries); return containingFile == null || virtualFile.isDirectory() || result.contains(virtualFile) ? result : GlobalSearchScope.fileScope(containingFile).uniteWith(result);