void (@NotNull final ReferencesSearch.SearchParameters p, @NotNull final Processor<? super PsiReference> consumer) { final PsiElement refElement = p.getElementToSearch(); if (!refElement.isValid() || !(refElement instanceof PsiVariable)) return; final String name = ((PsiVariable)refElement).getName(); if (StringUtil.isEmptyOrSpaces(name)) return; SearchScope scope = p.getEffectiveSearchScope(); if (!(scope instanceof LocalSearchScope)) { final PsiFile file = refElement.getContainingFile(); if (file == null || file instanceof PsiCompiledElement) return; //process incomplete references to the 'field' in the same file only scope = new LocalSearchScope(new PsiElement[]{file}, null, !PsiSearchHelperImpl.shouldProcessInjectedPsi(p.getScopeDeterminedByUser())); } else { PsiElement[] elements = ((LocalSearchScope)scope).getScope(); PsiElement[] sourceElements = ContainerUtil.findAllAsArray(elements, e -> !(e instanceof PsiCompiledElement)); if (sourceElements.length != elements.length) { if (sourceElements.length == 0) return; scope = new LocalSearchScope(sourceElements); } } PsiElement[] elements = ((LocalSearchScope)scope).getScope(); if (elements.length == 0) return; PsiSearchHelper.getInstance(p.getProject()).processElementsWithWord((element, offsetInElement) -> { for (PsiElement child = element.findElementAt(offsetInElement); child != null; child = child.getParent()) { if (!child.textMatches(name)) { break; } if (child instanceof PsiJavaCodeReferenceElement ref && !ref.isQualified() && !(ref.getParent() instanceof PsiMethodCallExpression) && ref.resolve() == null && ref.advancedResolve(true).getElement() == refElement) { consumer.process(ref); } } return true; }, scope, name, UsageSearchContext.ANY, true); }