boolean (final @NotNull ReferencesSearch.SearchParameters queryParameters, final @NotNull Processor<? super PsiReference> consumer) { final PsiElement elementToSearch = queryParameters.getElementToSearch(); if (elementToSearch instanceof PsiField field) { final PsiClass containingClass = ReadAction.compute(() -> field.getContainingClass()); if (containingClass != null) { final String qualifiedName = ReadAction.compute(() -> containingClass.getQualifiedName()); if (qualifiedName != null) { Project project = PsiUtilCore.getProjectInReadAction(containingClass); final List<PsiFile> fxmlWithController = JavaFxControllerClassIndex.findFxmlWithController(project, qualifiedName); for (final PsiFile file : fxmlWithController) { ApplicationManager.getApplication().runReadAction(() -> { final String fieldName = field.getName(); final VirtualFile virtualFile = file.getViewProvider().getVirtualFile(); final SearchScope searchScope = queryParameters.getEffectiveSearchScope(); if (searchScope.contains(virtualFile)) { file.accept(new XmlRecursiveElementVisitor() { @Override public void visitXmlAttributeValue(final @NotNull XmlAttributeValue value) { final PsiReference reference = value.getReference(); if (reference != null) { final PsiElement resolve = reference.resolve(); if (resolve instanceof XmlAttributeValue) { final PsiElement parent = resolve.getParent(); if (parent instanceof XmlAttribute attribute) { if (FxmlConstants.FX_ID.equals(attribute.getName()) && fieldName.equals(attribute.getValue())) { consumer.process(reference); } } } } } }); } }); } } } } return true; }