private boolean processOptions(String pattern, Predicate<? super MatchedValue> consumer) {
    Map<@NonNls String, @NlsContexts.ConfigurableName String> map = myModel.getConfigurablesNames();
    SearchableOptionsRegistrarImpl registrar = (SearchableOptionsRegistrarImpl)SearchableOptionsRegistrar.getInstance();

    List<Object> options = new ArrayList<>();
    final Set<String> words = registrar.getProcessedWords(pattern);
    Set<OptionDescription> optionDescriptions = null;
    boolean filterOutInspections = Registry.is("go.to.action.filter.out.inspections", true);
    for (String word : words) {
      final Set<OptionDescription> descriptions = Objects.requireNonNullElse(registrar.getAcceptableDescriptions(word), new HashSet<>());
      descriptions.removeIf(description -> {
        return "ActionManager".equals(description.getPath()) ||
               filterOutInspections && "Inspections".equals(description.getGroupName());
      });

      if (!descriptions.isEmpty()) {
        if (optionDescriptions == null) {
          optionDescriptions = descriptions;
        }
        else {
          optionDescriptions.retainAll(descriptions);
        }
      }
      else {
        optionDescriptions = null;
        break;
      }
    }
    if (!Strings.isEmptyOrSpaces(pattern)) {
      Matcher matcher = ActionSearchUtilKt.buildMatcher(pattern);
      if (optionDescriptions == null) {
        optionDescriptions = new HashSet<>();
      }
      for (Map.Entry<@NonNls String, @NlsContexts.ConfigurableName String> entry : map.entrySet()) {
        if (matcher.matches(entry.getValue())) {
          optionDescriptions.add(new OptionDescription(null, entry.getKey(), entry.getValue(), null, entry.getValue()));
        }
      }
    }
    if (optionDescriptions != null && !optionDescriptions.isEmpty()) {
      Set<String> currentHits = new HashSet<>();
      for (Iterator<OptionDescription> iterator = optionDescriptions.iterator(); iterator.hasNext(); ) {
        OptionDescription description = iterator.next();
        final String hit = description.getHit();
        if (hit == null || !currentHits.add(hit.trim())) {
          iterator.remove();
        }
      }
      for (OptionDescription description : optionDescriptions) {
        for (ActionFromOptionDescriptorProvider converter : ActionFromOptionDescriptorProvider.EP.getExtensionList()) {
          AnAction action = converter.provide(description);
          if (action != null) {
            options.add(createActionWrapper(action, null, MatchMode.NAME, myModel));
          }
        }
        options.add(description);
      }
    }
    return processItems(pattern, MatchedValueType.OPTION, options.stream(), consumer);
  }
private boolean processOptions(String pattern, Predicate<? super MatchedValue> consumer)