diff --git a/java/java-analysis-impl/src/com/intellij/find/findUsages/JavaFindUsagesHelper.java b/java/java-analysis-impl/src/com/intellij/find/findUsages/JavaFindUsagesHelper.java index 347e04e06fa4..717d6587956f 100644 --- a/java/java-analysis-impl/src/com/intellij/find/findUsages/JavaFindUsagesHelper.java +++ b/java/java-analysis-impl/src/com/intellij/find/findUsages/JavaFindUsagesHelper.java @@ -193,7 +193,7 @@ public class JavaFindUsagesHelper { if (!isSearchable && options.isSearchForTextOccurrences && options.searchScope instanceof GlobalSearchScope) { Collection stringsToSearch = ReadAction.compute(() -> getElementNames(element)); // todo add to fastTrack - if (!FindUsagesHelper.processUsagesInText(element, stringsToSearch, (GlobalSearchScope)options.searchScope, processor)) return false; + if (!FindUsagesHelper.processUsagesInText(element, stringsToSearch, false, (GlobalSearchScope)options.searchScope, processor)) return false; } return true; } diff --git a/platform/indexing-impl/src/com/intellij/find/findUsages/FindUsagesHelper.java b/platform/indexing-impl/src/com/intellij/find/findUsages/FindUsagesHelper.java index c53dfd32c311..8f9e27a1c0ee 100644 --- a/platform/indexing-impl/src/com/intellij/find/findUsages/FindUsagesHelper.java +++ b/platform/indexing-impl/src/com/intellij/find/findUsages/FindUsagesHelper.java @@ -31,13 +31,27 @@ import org.jetbrains.annotations.NotNull; import java.util.Collection; public class FindUsagesHelper { + /** + * @deprecated use {@code processUsagesInText(PsiElement, Collection, GlobalSearchScope, boolean, Processor} instead. + */ + @Deprecated public static boolean processUsagesInText(@NotNull final PsiElement element, @NotNull Collection stringToSearch, @NotNull GlobalSearchScope searchScope, @NotNull Processor processor) { - final TextRange elementTextRange = ReadAction.compute(() -> !element.isValid() || element instanceof PsiCompiledElement ? null : element.getTextRange()); + return processUsagesInText(element, stringToSearch, false, searchScope, processor); + } + + public static boolean processUsagesInText(@NotNull final PsiElement element, + @NotNull Collection stringToSearch, + boolean equivalentReferencesOnly, + @NotNull GlobalSearchScope searchScope, + @NotNull Processor processor) { + final TextRange elementTextRange = ReadAction.compute( + () -> !element.isValid() || element instanceof PsiCompiledElement ? null + : element.getTextRange()); UsageInfoFactory factory = (usage, startOffset, endOffset) -> { - if (!element.isValid()) return new UsageInfo(usage, startOffset, endOffset, true); + if (!element.isValid()) return equivalentReferencesOnly ? null : new UsageInfo(usage, startOffset, endOffset, true); if (elementTextRange != null && usage.getContainingFile() == element.getContainingFile() && elementTextRange.contains(startOffset) @@ -48,15 +62,17 @@ public class FindUsagesHelper { PsiReference someReference = usage.findReferenceAt(startOffset); if (someReference != null) { PsiElement refElement = someReference.getElement(); - for (PsiReference ref : PsiReferenceService.getService().getReferences(refElement, new PsiReferenceService.Hints(element, null))) { + for (PsiReference ref : PsiReferenceService.getService() + .getReferences(refElement, new PsiReferenceService.Hints(element, null))) { if (element.getManager().areElementsEquivalent(ref.resolve(), element)) { - TextRange range = ref.getRangeInElement().shiftRight(refElement.getTextRange().getStartOffset() - usage.getTextRange().getStartOffset()); + TextRange range = ref.getRangeInElement() + .shiftRight(refElement.getTextRange().getStartOffset() - usage.getTextRange().getStartOffset()); return new UsageInfo(usage, range.getStartOffset(), range.getEndOffset(), true); } } } - return new UsageInfo(usage, startOffset, endOffset, true); + return equivalentReferencesOnly ? null : new UsageInfo(usage, startOffset, endOffset, true); }; for (String s : stringToSearch) { if (!PsiSearchHelperImpl.processTextOccurrences(element, s, searchScope, processor, factory)) return false; diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java index d4c378bf6ad8..dabf7c5a1b11 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java @@ -142,7 +142,7 @@ public abstract class FindUsagesHandler { @NotNull GlobalSearchScope searchScope) { Collection stringToSearch = ReadAction.compute(() -> getStringsToSearch(element)); if (stringToSearch == null) return true; - return FindUsagesHelper.processUsagesInText(element, stringToSearch, searchScope, processor); + return FindUsagesHelper.processUsagesInText(element, stringToSearch, false, searchScope, processor); } @Nullable