boolean (@NotNull final GlobalSearchScope scope, @NotNull final AllClassesSearch.SearchParameters parameters, @NotNull Processor<? super PsiClass> processor) { final Set<String> names = new HashSet<>(10000); Project project = parameters.getProject(); processClassNames(project, scope, s -> { if (parameters.nameMatches(s)) { names.add(s); } return true; }); List<String> sorted = new ArrayList<>(names); sorted.sort(String.CASE_INSENSITIVE_ORDER); PsiShortNamesCache cache = PsiShortNamesCache.getInstance(project); return JobLauncher.getInstance().invokeConcurrentlyUnderProgress(sorted, ProgressIndicatorProvider.getGlobalProgressIndicator(), name -> processByName(project, scope, processor, cache, name)); }