private static boolean processReferencesInUIForms(final Processor<? super PsiReference> processor,
                                                    PsiManager psiManager,
                                                    final Property property,
                                                    final GlobalSearchScope globalSearchScope,
                                                    final LocalSearchScope filterScope) {
    final Project project = psiManager.getProject();

    final GlobalSearchScope scope = GlobalSearchScope.projectScope(project).intersectWith(globalSearchScope);
    String name = ReadAction.compute(() -> property.getName());
    if (name == null) return true;

    return psiManager.runInBatchFilesMode(() -> {
      CommonProcessors.CollectProcessor<VirtualFile> collector = new CommonProcessors.CollectProcessor<>() {
        @Override
        protected boolean accept(VirtualFile virtualFile) {
          return FileTypeRegistry.getInstance().isFileOfType(virtualFile, GuiFormFileType.INSTANCE);
        }
      };
      PsiSearchHelper.getInstance(project).processCandidateFilesForText(scope, UsageSearchContext.IN_PLAIN_TEXT, true, name, collector);

      for (final VirtualFile vfile:collector.getResults()) {
        ProgressManager.checkCanceled();

        PsiFile file = ReadAction.compute(() -> PsiManager.getInstance(project).findFile(vfile));
        if (!processReferences(processor, file, name, property, filterScope)) {
          return false;
        }
      }
      return true;
    });
  }
private static boolean processReferencesInUIForms(final Processor<? super PsiReference> processor,
                                                    PsiManager psiManager,
                                                    final Property property,
                                                    final GlobalSearchScope globalSearchScope,
                                                    final LocalSearchScope filterScope)