@Override
  public void fetchWeightedElements(@NotNull String pattern,
                                    @NotNull ProgressIndicator progressIndicator,
                                    @NotNull Processor<? super FoundItemDescriptor<Object>> consumer) {
    Function<PsiElement, TargetPresentation> psiCalculator = createPSICalculator();
    ListCellRenderer<? super Object> delegateRenderer = myDelegate.getElementsRenderer();
    SearchEverywherePresentationProvider<? super Object> presentationProvider = (delegateRenderer instanceof SearchEverywherePresentationProvider)
                                                                        ? (SearchEverywherePresentationProvider<Object>)delegateRenderer
                                                                        : null;
    myDelegate.fetchWeightedElements(pattern, progressIndicator, descriptor -> {
      FoundItemDescriptor<Object> presentationDescriptor = element2presentation(descriptor, psiCalculator, presentationProvider);
      return consumer.process(presentationDescriptor);
    });
  }
@Override
  public void fetchWeightedElements(@NotNull String pattern,
                                    @NotNull ProgressIndicator progressIndicator,
                                    @NotNull Processor<? super FoundItemDescriptor<Object>> consumer)