boolean (@NotNull ReferencesSearch.SearchParameters queryParameters, @NotNull final Processor<? super PsiReference> consumer) { final PsiElement file = queryParameters.getElementToSearch(); if (file instanceof PsiBinaryFile) { final Module module = ReadAction.compute(() -> ModuleUtilCore.findModuleForPsiElement(file)); final VirtualFile image = ((PsiBinaryFile)file).getVirtualFile(); if (isImage(image) && isIconsModule(module)) { final Project project = file.getProject(); final FindModel model = new FindModel(); final String path = getPathToImage(image, module); model.setStringToFind(path); model.setCaseSensitive(true); model.setFindAll(true); model.setWholeWordsOnly(true); FindInProjectUtil.findUsages(model, project, usage -> { ApplicationManager.getApplication().runReadAction(() -> { final PsiElement element = usage.getElement(); final ProperTextRange textRange = usage.getRangeInElement(); if (element != null && textRange != null) { final PsiElement start = element.findElementAt(textRange.getStartOffset()); final PsiElement end = element.findElementAt(textRange.getEndOffset()); if (start != null && end != null) { PsiElement value = PsiTreeUtil.findCommonParent(start, end); if (value instanceof PsiJavaToken) { value = value.getParent(); } if (value != null) { final PsiFileReference reference = FileReferenceUtil.findFileReference(value); if (reference != null) { consumer.process(reference); } } } } }); return true; }, new FindUsagesProcessPresentation(new UsageViewPresentation())); } } return true; }