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 49ec4e25bee6..7b0f2f306e52 100644
--- a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java
+++ b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectTypeStep.java
@@ -376,7 +376,9 @@ public final class ProjectTypeStep extends ModuleWizardStep implements SettingsS
generators.removeIf(it -> !it.isEnabled());
generators.sort(Comparator.comparing(it -> it.getOrdinal()));
if (context.isCreatingNewProject()) {
- generators.add(new EmptyProjectGeneratorNewProjectWizard());
+ GeneratorNewProjectWizard.EP_NAME.forEachExtensionSafe(wizard -> {
+ generators.add(wizard);
+ });
}
var generatorItems = ContainerUtil.map(generators, it -> new LanguageGeneratorItem(it));
for (var generatorItem : generatorItems) {
diff --git a/java/plugin/resources/META-INF/plugin.xml b/java/plugin/resources/META-INF/plugin.xml
index a4d7e4cd9c34..4ce5be55c713 100644
--- a/java/plugin/resources/META-INF/plugin.xml
+++ b/java/plugin/resources/META-INF/plugin.xml
@@ -45,5 +45,6 @@
+
\ No newline at end of file
diff --git a/platform/platform-impl/api-dump-unreviewed.txt b/platform/platform-impl/api-dump-unreviewed.txt
index 207455a96273..abad821dc4d9 100644
--- a/platform/platform-impl/api-dump-unreviewed.txt
+++ b/platform/platform-impl/api-dump-unreviewed.txt
@@ -10429,6 +10429,8 @@ com.intellij.ide.wizard.BuildSystemNewProjectWizardData
- a:getBuildSystemProperty():com.intellij.openapi.observable.properties.GraphProperty
- a:setBuildSystem(java.lang.String):V
com.intellij.ide.wizard.GeneratorNewProjectWizard
+- sf:Companion:com.intellij.ide.wizard.GeneratorNewProjectWizard$Companion
+- sf:EP_NAME:com.intellij.openapi.extensions.ExtensionPointName
- a:createStep(com.intellij.ide.util.projectWizard.WizardContext):com.intellij.ide.wizard.NewProjectWizardStep
- getDescription():java.lang.String
- getGroupName():java.lang.String
@@ -10437,6 +10439,7 @@ com.intellij.ide.wizard.GeneratorNewProjectWizard
- a:getName():java.lang.String
- getOrdinal():I
- isEnabled():Z
+f:com.intellij.ide.wizard.GeneratorNewProjectWizard$Companion
a:com.intellij.ide.wizard.GeneratorNewProjectWizardBuilderAdapter
- com.intellij.ide.wizard.AbstractNewProjectWizardBuilder
- sf:Companion:com.intellij.ide.wizard.GeneratorNewProjectWizardBuilderAdapter$Companion
diff --git a/platform/platform-impl/src/com/intellij/ide/wizard/GeneratorNewProjectWizard.kt b/platform/platform-impl/src/com/intellij/ide/wizard/GeneratorNewProjectWizard.kt
index 9e3f6186696e..53725b11307e 100644
--- a/platform/platform-impl/src/com/intellij/ide/wizard/GeneratorNewProjectWizard.kt
+++ b/platform/platform-impl/src/com/intellij/ide/wizard/GeneratorNewProjectWizard.kt
@@ -2,6 +2,7 @@
package com.intellij.ide.wizard
import com.intellij.ide.util.projectWizard.WizardContext
+import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.util.NlsContexts
import com.intellij.util.PlatformUtils
import org.jetbrains.annotations.Nls
@@ -17,6 +18,11 @@ import javax.swing.Icon
*/
interface GeneratorNewProjectWizard {
+ companion object {
+ @JvmField
+ val EP_NAME = ExtensionPointName("com.intellij.newProjectWizard.generator")
+ }
+
/**
* The unique identifier to distinguish this generator from others in the new project wizard.
*/
diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
index d53715cd4769..5baa0742f516 100644
--- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
+++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
@@ -474,6 +474,8 @@
+
+