diff --git a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java index bb41f2047774..530ae71743c1 100644 --- a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java +++ b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java @@ -151,7 +151,7 @@ public final class ProjectTypeStep extends ModuleWizardStep implements SettingsS String emptyCard = "emptyCard"; ProjectTypeListWithSearch listWithFilter = new ProjectTypeListWithSearch<>( - myContext, myProjectTypeList, new JBScrollPane(myProjectTypeList), group -> group.getName(), () -> { + myContext, myProjectTypeList, new JBScrollPane(myProjectTypeList), getNamer(), () -> { showCard(emptyCard); wizard.updateButtons(true, false, true); }); @@ -225,6 +225,20 @@ public final class ProjectTypeStep extends ModuleWizardStep implements SettingsS myTemplatesList.restoreSelection(); } + @NotNull + private Function getNamer() { + return group -> { + ModuleBuilder builder = group.getModuleBuilder(); + String name = group.getName(); + if (builder == null) return name; + + ModuleWizardStep step = myCustomSteps.get(builder.getBuilderId()); + if (!(step instanceof NewProjectWizardStep)) return name; + + return name + (" " + ((NewProjectWizardStep)step).getTextToSearch()); + }; + } + private static ModuleType getModuleType(TemplatesGroup group) { ModuleBuilder moduleBuilder = group.getModuleBuilder(); return moduleBuilder == null ? null : moduleBuilder.getModuleType(); diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepBase.kt b/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepBase.kt index 2fa6d7216759..98b82c9f0c03 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepBase.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardMultiStepBase.kt @@ -42,6 +42,8 @@ abstract class AbstractNewProjectWizardMultiStepBase( steps = initSteps() step = step.ifBlank { steps.keys.first() } + textToSearch.append(" ").append(steps.keys.joinToString(" ")) + with(builder) { row(label) { setupSwitcherUi(this@row) diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardStep.kt b/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardStep.kt index 8e3defed78a4..7ef785388ddc 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardStep.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/AbstractNewProjectWizardStep.kt @@ -17,4 +17,6 @@ abstract class AbstractNewProjectWizardStep(parentStep: NewProjectWizardStep) : final override val propertyGraph by parentStep::propertyGraph final override val data by parentStep::data + + final override val textToSearch by parentStep::textToSearch } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStep.kt b/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStep.kt index f7ef3900e38e..e028d0f8dd9a 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStep.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardStep.kt @@ -30,6 +30,11 @@ interface NewProjectWizardStep { */ val propertyGraph: PropertyGraph + /** + * The text that is used for search field input pattern matching + */ + val textToSearch: StringBuilder + /** * Data holder that needed to share step data. * diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/RootNewProjectWizardStep.kt b/platform/platform-impl/src/com/intellij/ide/wizard/RootNewProjectWizardStep.kt index 3cdf12efe65f..a976801c6d59 100644 --- a/platform/platform-impl/src/com/intellij/ide/wizard/RootNewProjectWizardStep.kt +++ b/platform/platform-impl/src/com/intellij/ide/wizard/RootNewProjectWizardStep.kt @@ -4,10 +4,13 @@ package com.intellij.ide.wizard import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.openapi.observable.properties.PropertyGraph import com.intellij.openapi.util.UserDataHolderBase +import java.lang.StringBuilder class RootNewProjectWizardStep(override val context: WizardContext) : NewProjectWizardStep { override val data = UserDataHolderBase() override val propertyGraph = PropertyGraph("New project wizard") + + override var textToSearch = StringBuilder() } \ No newline at end of file