IJPL-155974 refactor SearchUtil

GitOrigin-RevId: 974ae759b5876605fe32546da28866e772652520
This commit is contained in:
Vladimir Krivosheev
2024-06-24 15:35:32 +02:00
committed by intellij-monorepo-bot
parent b0bd6aae41
commit bcdb01f9ec
6 changed files with 517 additions and 485 deletions

View File

@@ -409,8 +409,18 @@ private fun processConfigurables(
if (configurable is MasterDetails) {
configurable.initUi()
SearchUtil.processComponent(configurable, configurableOptions, configurable.master, i18n)
SearchUtil.processComponent(configurable, configurableOptions, configurable.details.component, i18n)
SearchUtil.processComponent(
configurable = configurable,
configurableOptions = configurableOptions,
component = configurable.master,
i18n = i18n,
)
SearchUtil.processComponent(
configurable = configurable,
configurableOptions = configurableOptions,
component = configurable.details.component,
i18n = i18n,
)
}
else {
SearchUtil.processComponent(configurable, configurableOptions, configurable.createComponent(), i18n)

View File

@@ -31,7 +31,7 @@ public abstract class SearchableOptionsRegistrar{
@NotNull String option,
@Nullable Project project);
public abstract @NotNull Set<String> getInnerPaths(SearchableConfigurable configurable, String option);
public abstract @NotNull Set<@NotNull String> getInnerPaths(SearchableConfigurable configurable, String option);
/**
* @deprecated Use {@link SearchableOptionContributor}

View File

@@ -10179,30 +10179,21 @@ com.intellij.ide.ui.search.NotABooleanOptionDescription
f:com.intellij.ide.ui.search.PorterStemmerUtil
- s:stem(java.lang.String):java.lang.String
f:com.intellij.ide.ui.search.SearchUtil
- sf:ADDITIONAL_SEARCH_LABELS_KEY:com.intellij.openapi.util.Key
- sf:HIGHLIGHT_WITH_BORDER:java.lang.String
- sf:SEARCH_SKIP_COMPONENT_KEY:com.intellij.openapi.util.Key
- s:appendFragments(java.lang.String,java.lang.String,I,java.awt.Color,java.awt.Color,com.intellij.ui.SimpleColoredComponent):V
- s:appendRangedFragments(java.lang.String,java.lang.String,com.intellij.util.IntPair[],I,java.awt.Color,java.awt.Color,com.intellij.ui.SimpleColoredComponent):V
- s:expand(com.intellij.openapi.options.ConfigurableGroup[]):java.util.List
- s:expandGroup(com.intellij.openapi.options.ConfigurableGroup):java.util.List
- s:findKeys(java.lang.String,java.util.Set):java.util.List
- s:isComponentHighlighted(java.lang.String,java.lang.String,Z,com.intellij.openapi.options.SearchableConfigurable):Z
- s:lightOptions(com.intellij.openapi.options.SearchableConfigurable,javax.swing.JComponent,java.lang.String):V
- s:markup(java.lang.String,java.lang.String):java.lang.String
- s:markup(java.lang.String,java.lang.String,java.awt.Color,java.awt.Color):java.lang.String
- s:processExpandedGroups(com.intellij.openapi.options.ConfigurableGroup,java.util.function.Consumer):V
f:com.intellij.ide.ui.search.SearchableOptionsRegistrarImpl
- com.intellij.ide.ui.search.SearchableOptionsRegistrar
- <init>():V
- getAcceptableDescriptions(java.lang.String):java.util.Set
- getConfigurables(java.util.List,javax.swing.event.DocumentEvent$EventType,java.util.Set,java.lang.String,com.intellij.openapi.project.Project):com.intellij.ide.ui.search.ConfigurableHit
- getInnerPaths(com.intellij.openapi.options.SearchableConfigurable,java.lang.String):java.util.Set
- getProcessedWords(java.lang.String):java.util.Set
- getProcessedWordsWithoutStemming(java.lang.String):java.util.Set
- isInitialized():Z
- isStopWord(java.lang.String):Z
- replaceSynonyms(java.util.Set,com.intellij.openapi.options.SearchableConfigurable):java.util.Set
- sf:INSTANCE:com.intellij.ide.ui.search.SearchUtil
- sf:appendFragments(java.lang.String,java.lang.String,I,java.awt.Color,java.awt.Color,com.intellij.ui.SimpleColoredComponent):V
- f:appendRangedFragments(java.lang.String,java.lang.String,com.intellij.util.IntPair[],I,java.awt.Color,java.awt.Color,com.intellij.ui.SimpleColoredComponent):V
- sf:expand(com.intellij.openapi.options.ConfigurableGroup[]):java.util.List
- f:expandGroup(com.intellij.openapi.options.ConfigurableGroup):java.util.List
- sf:findKeys(java.lang.String,java.util.Set):java.util.List
- sf:isComponentHighlighted(java.lang.String,java.lang.String,Z,com.intellij.openapi.options.SearchableConfigurable):Z
- sf:lightOptions(com.intellij.openapi.options.SearchableConfigurable,javax.swing.JComponent,java.lang.String):V
- sf:markup(java.lang.String,java.lang.String):java.lang.String
- sf:markup(java.lang.String,java.lang.String,java.awt.Color,java.awt.Color):java.lang.String
- sf:processComponent(com.intellij.openapi.options.SearchableConfigurable,java.util.Set,javax.swing.JComponent,Z):V
- sf:processComponent(javax.swing.JComponent,java.util.Set,java.lang.String,Z):V
- f:processUILabel(java.lang.String,java.util.Set,java.lang.String,Z):V
- f:unwrapConfigurable(com.intellij.openapi.options.Configurable):com.intellij.openapi.options.Configurable
com.intellij.ide.ui.search.TraverseUIHelper
- sf:helperExtensionPoint:com.intellij.openapi.extensions.ExtensionPointName
- afterConfigurable(com.intellij.openapi.options.SearchableConfigurable,java.util.Set):V

View File

@@ -19,7 +19,6 @@ import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.NlsSafe;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.util.text.Strings;
import com.intellij.util.CollectConsumer;
import com.intellij.util.ResourceUtil;
import com.intellij.util.containers.ContainerUtil;
import kotlin.Pair;
@@ -36,10 +35,10 @@ import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
import java.util.regex.Pattern;
@SuppressWarnings("Duplicates")
@ApiStatus.Internal
public final class SearchableOptionsRegistrarImpl extends SearchableOptionsRegistrar {
private static final ExtensionPointName<SearchableOptionContributor> EP_NAME =
new ExtensionPointName<>("com.intellij.search.optionContributor");
@@ -212,9 +211,8 @@ public final class SearchableOptionsRegistrarImpl extends SearchableOptionsRegis
Set<Configurable> effectiveConfigurables = new LinkedHashSet<>();
if (previouslyFiltered == null) {
Consumer<Configurable> consumer = new CollectConsumer<>(effectiveConfigurables);
for (ConfigurableGroup group : groups) {
SearchUtil.processExpandedGroups(group, consumer);
SearchUtilKt.processExpandedGroups(group, effectiveConfigurables);
}
}
else {
@@ -442,7 +440,7 @@ public final class SearchableOptionsRegistrarImpl extends SearchableOptionsRegis
}
@Override
public @NotNull Set<String> getInnerPaths(SearchableConfigurable configurable, String option) {
public @NotNull Set<@NotNull String> getInnerPaths(SearchableConfigurable configurable, String option) {
initialize();
final Set<String> words = getProcessedWordsWithoutStemming(option);
final Set<OptionDescription> path = getOptionDescriptionsByWords(configurable, words);
@@ -461,7 +459,10 @@ public final class SearchableOptionsRegistrarImpl extends SearchableOptionsRegis
}
}
if (theBest) {
resultSet.add(description.getPath());
String p = description.getPath();
if (p != null) {
resultSet.add(p);
}
}
}
theOnlyResult = description;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.openapi.keymap.impl.ui;
import com.intellij.diagnostic.PluginException;
@@ -321,7 +321,8 @@ public final class ActionsTreeUtil {
if (component instanceof Group correctedGroup && Objects.equals(correctedGroup.getId(), groupId)) {
group.setForceShowAsPopup(correctedGroup.isForceShowAsPopup());
}
if (areEqual(path, actionUrl)) { //actual path is shorter when we use custom root
// the actual path is shorter when we use custom root
if (areEqual(path, actionUrl)) {
AnAction componentAction = actionUrl.getComponentAction();
if (componentAction != null) {
if (actionUrl.getActionType() == ActionUrl.ADDED) {