boolean (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(new ActionWrapper(action, null, MatchMode.NAME, myModel)); } } options.add(description); } } return processItems(pattern, MatchedValueType.OPTION, options.stream(), consumer); }