void (@NotNull PsiMethod psiMethod, @NotNull ReferencesSearch.SearchParameters queryParameters, @NotNull Processor<? super PsiReference> consumer) { final Project project = PsiUtilCore.getProjectInReadAction(psiMethod); final SearchScope scope = ReadAction.compute(queryParameters::getEffectiveSearchScope); if (scope instanceof LocalSearchScope) { final VirtualFile[] vFiles = ((LocalSearchScope)scope).getVirtualFiles(); for (VirtualFile vFile : vFiles) { if (JavaFxFileTypeFactory.isFxml(vFile)) { final PsiFile psiFile = PsiManager.getInstance(project).findFile(vFile); if (psiFile != null) { final Boolean goOn = ReadAction.compute(() -> searchMethodInFile(psiMethod, psiFile, consumer)); if (!goOn) break; } } } } else if (scope instanceof GlobalSearchScope) { final String propertyName = ReadAction.compute(() -> PropertyUtilBase.getPropertyName(psiMethod.getName())); if (propertyName == null) return; final String className = ReadAction.compute(() -> { final PsiClass psiClass = psiMethod.getContainingClass(); return psiClass != null ? psiClass.getName() : null; }); if (className == null) return; final GlobalSearchScope fxmlScope = new JavaFxScopeEnlarger.GlobalFxmlSearchScope((GlobalSearchScope)scope); final VirtualFile[] filteredFiles = ReadAction.compute(() -> CacheManager.getInstance(project).getVirtualFilesWithWord(className, UsageSearchContext.IN_PLAIN_TEXT, fxmlScope, true)); if (ArrayUtil.isEmpty(filteredFiles)) return; ReadAction.run(() -> { GlobalSearchScope filteredScope = GlobalSearchScope.filesScope(project, ContainerUtil.newHashSet(filteredFiles)); CacheManager.getInstance(project).processFilesWithWord( file -> searchMethodInFile(psiMethod, file, consumer), propertyName, UsageSearchContext.IN_PLAIN_TEXT, filteredScope, true ); }); } }