diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Plugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Plugin.kt index a84478c29fa..09ae23cec66 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Plugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Plugin.kt @@ -29,8 +29,7 @@ abstract class Plugin(override val context: Context) : EntityBase(), ): ReadOnlyProperty> = context.pluginSettingDelegate(create) val reference = this::class - override val path = reference.path - open val title: String = reference.name + abstract override val path: String abstract val settings: List> abstract val pipelineTasks: List diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/AndroidPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/AndroidPlugin.kt index 20dc186a224..9c112e34fd8 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/AndroidPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/AndroidPlugin.kt @@ -22,6 +22,8 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.withAllSubModules class AndroidPlugin(context: Context) : Plugin(context) { + override val path = "android" + val androidSdkPath by pathSetting( KotlinNewProjectWizardBundle.message("plugin.android.setting.sdk"), neededAtPhase = GenerationPhase.PROJECT_GENERATION diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/RunConfigurationsPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/RunConfigurationsPlugin.kt index b9403a21e2f..bc035fefb5a 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/RunConfigurationsPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/RunConfigurationsPlugin.kt @@ -16,6 +16,8 @@ import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin class RunConfigurationsPlugin(context: Context) : Plugin(context) { + override val path = "runConfigurations" + val configurations by listProperty() val createRunConfigurationsTask by pipelineTask(GenerationPhase.PROJECT_IMPORT) { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt index b0eb9a681b8..5cda0f9e51d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt @@ -17,6 +17,8 @@ import java.nio.file.Files import java.nio.file.Paths class StructurePlugin(context: Context) : Plugin(context) { + override val path = "structure" + val projectPath by pathSetting( KotlinNewProjectWizardBundle.message("plugin.structure.setting.location"), GenerationPhase.FIRST_STEP diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt index cb91237e034..28026f4fa5f 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt @@ -27,6 +27,8 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles abstract class BuildSystemPlugin(context: Context) : Plugin(context) { + override val path = "buildSystem" + val type by enumSetting( KotlinNewProjectWizardBundle.message("plugin.buildsystem.setting.type"), GenerationPhase.FIRST_STEP diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/JpsPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/JpsPlugin.kt index 52da0aa8828..b403934a63f 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/JpsPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/JpsPlugin.kt @@ -3,6 +3,8 @@ package org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem import org.jetbrains.kotlin.tools.projectWizard.core.Context class JpsPlugin(context: Context) : BuildSystemPlugin(context) { + override val path = "buildSystem.jps" + val addBuildSystemData by addBuildSystemData( BuildSystemData( type = BuildSystemType.Jps, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt index 94658094095..32f3cabdad2 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt @@ -14,6 +14,8 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.MavenPrinter import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles class MavenPlugin(context: Context) : BuildSystemPlugin(context) { + override val path = "buildSystem.maven" + private val isMaven = checker { BuildSystemPlugin::type.settingValue == BuildSystemType.Maven } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt index a74000d92a5..caa1779f036 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt @@ -27,6 +27,8 @@ import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptor abstract class GradlePlugin(context: Context) : BuildSystemPlugin(context) { + override val path = "buildSystem.gradle" + val gradleProperties by listProperty( "kotlin.code.style" to "official" ) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GroovyDslPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GroovyDslPlugin.kt index d1ad7676d1f..eeacd5c638c 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GroovyDslPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GroovyDslPlugin.kt @@ -8,6 +8,8 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemT import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter class GroovyDslPlugin(context: Context) : GradlePlugin(context) { + override val path = "buildSystem.gradle.groovyDsl" + val addBuildSystemData by addBuildSystemData( BuildSystemData( type = BuildSystemType.GradleGroovyDsl, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/KotlinDslPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/KotlinDslPlugin.kt index a3e36c2ca58..34d68e7fc31 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/KotlinDslPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/KotlinDslPlugin.kt @@ -8,6 +8,8 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemT import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter class KotlinDslPlugin(context: Context) : GradlePlugin(context) { + override val path = "buildSystem.gradle.kotlinDsl" + val addBuildSystemData by addBuildSystemData( BuildSystemData( type = BuildSystemType.GradleKotlinDsl, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt index 589c0af45b4..4f0e886185b 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt @@ -25,6 +25,8 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version import java.nio.file.Path class KotlinPlugin(context: Context) : Plugin(context) { + override val path = "kotlin" + val version by property( // todo do not hardcode kind & repository WizardKotlinVersion(Versions.KOTLIN, KotlinVersionKind.M, Repositories.KOTLIN_EAP_BINTRAY) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/projectTemplates/ProjectTemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/projectTemplates/ProjectTemplatesPlugin.kt index 556a1a3e080..322f671d926 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/projectTemplates/ProjectTemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/projectTemplates/ProjectTemplatesPlugin.kt @@ -11,6 +11,8 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.withAllSubModules import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate class ProjectTemplatesPlugin(context: Context) : Plugin(context) { + override val path = "projectTemplates" + val template by dropDownSetting( KotlinNewProjectWizardBundle.message("plugin.templates.setting.template"), GenerationPhase.INIT_TEMPLATE, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ConsoleJvmApplicationTemplatePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ConsoleJvmApplicationTemplatePlugin.kt index 2a58f0c1711..94c11503788 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ConsoleJvmApplicationTemplatePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ConsoleJvmApplicationTemplatePlugin.kt @@ -4,6 +4,8 @@ import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.templates.ConsoleJvmApplicationTemplate class ConsoleJvmApplicationTemplatePlugin(context: Context) : TemplatePlugin(context) { + override val path = "template.consoleJvmApplicationTemplate" + val addTemplate by addTemplateTask( ConsoleJvmApplicationTemplate() ) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/JsTemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/JsTemplatesPlugin.kt index 2e94cac081c..492f475330b 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/JsTemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/JsTemplatesPlugin.kt @@ -5,6 +5,8 @@ import org.jetbrains.kotlin.tools.projectWizard.core.entity.PipelineTask import org.jetbrains.kotlin.tools.projectWizard.templates.SimpleJsClientTemplate class JsTemplatesPlugin(context: Context) : TemplatePlugin(context) { + override val path = "template.jsTemplate" + val addTemplate by addTemplateTask(SimpleJsClientTemplate()) override val pipelineTasks: List = super.pipelineTasks + diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatePlugin.kt index e29f6f65b70..9cb65d0af0d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatePlugin.kt @@ -8,6 +8,8 @@ import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.templates.Template abstract class TemplatePlugin(context: Context) : Plugin(context) { + override val path = "template" + fun addTemplateTask(template: Template) = pipelineTask(GenerationPhase.PREPARE) { withAction { TemplatesPlugin::addTemplate.execute(template) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt index c5033dc491b..f9a601921fe 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt @@ -23,6 +23,8 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.settingValue import java.nio.file.Path class TemplatesPlugin(context: Context) : Plugin(context) { + override val path = "templates" + val templates by property>( emptyMap() )