use user-defined search scope explicitly in searchers that seem to need that

This commit is contained in:
peter
2014-12-02 16:05:07 +01:00
parent 302967b3f0
commit e438827c38
2 changed files with 4 additions and 5 deletions
@@ -26,7 +26,7 @@ public class NonPhysicalReferenceSearcher extends QueryExecutorBase<PsiReference
public void processQuery(@NotNull ReferencesSearch.SearchParameters queryParameters, @NotNull Processor<PsiReference> consumer) {
if (ApplicationManager.getApplication().isUnitTestMode()) return;
final SearchScope scope = queryParameters.getScope();
final SearchScope scope = queryParameters.getScopeDeterminedByUser();
final PsiElement element = queryParameters.getElementToSearch();
final PsiFile containingFile = element.getContainingFile();
final boolean isPhysical = containingFile == null || containingFile.getViewProvider().isPhysical();
@@ -50,7 +50,8 @@ import java.util.List;
public class FormReferencesSearcher implements QueryExecutor<PsiReference, ReferencesSearch.SearchParameters> {
@Override
public boolean execute(@NotNull final ReferencesSearch.SearchParameters p, @NotNull final Processor<PsiReference> consumer) {
if (!scopeCanContainForms(p.getScope())) return true;
SearchScope userScope = p.getScopeDeterminedByUser();
if (!scopeCanContainForms(userScope)) return true;
final PsiElement refElement = p.getElementToSearch();
final PsiFile psiFile = ApplicationManager.getApplication().runReadAction(new Computable<PsiFile>() {
@Override
@@ -71,9 +72,7 @@ public class FormReferencesSearcher implements QueryExecutor<PsiReference, Refer
Module module = ProjectRootManager.getInstance(project).getFileIndex().getModuleForFile(virtualFile);
if (module == null) return true;
final GlobalSearchScope scope = GlobalSearchScope.moduleWithDependenciesScope(module);
final LocalSearchScope filterScope = p.getScope() instanceof LocalSearchScope
? (LocalSearchScope) p.getScope()
: null;
final LocalSearchScope filterScope = userScope instanceof LocalSearchScope ? (LocalSearchScope)userScope : null;
PsiManager psiManager = PsiManager.getInstance(project);
if (refElement instanceof PsiPackage) {