@Override
  public ProgressIndicator search(@NotNull Map<? extends SearchEverywhereContributor<?>, Integer> contributorsAndLimits,
                                  @NotNull String pattern) {
    LOG.debug("Search started for pattern [", pattern, "]");

    if (pattern.isEmpty()) {
      if (ApplicationManager.getApplication().isUnitTestMode()) {
        contributorsAndLimits = Collections.emptyMap(); //empty search string is not allowed for tests
      }
      else {
        contributorsAndLimits = ContainerUtil.filter(contributorsAndLimits, c -> c.isEmptyPatternSupported());
      }
    }

    Map<? extends SearchEverywhereContributor<?>, Integer> map = contributorsAndLimits;
    Function<ProgressIndicator, ResultsAccumulator> accumulatorSupplier = indicator ->
      new ResultsAccumulator(map, myEqualityProvider, myListener, myNotificationExecutor, indicator);

    return performSearch(contributorsAndLimits.keySet(), pattern, accumulatorSupplier);
  }
@Override
  public ProgressIndicator search(@NotNull Map<? extends SearchEverywhereContributor<?>, Integer> contributorsAndLimits,
                                  @NotNull String pattern)