User: joe Date: 01 Mar 23 13:31 Revision: 1a8b7499f2141f08f596d1381a2ca304641d7848 Summary: Replace .chain() with backported NewProjectWizardChainStep TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8341&personal=false Index: src/main/kotlin/creator/MinecraftModuleBuilder.kt =================================================================== --- src/main/kotlin/creator/MinecraftModuleBuilder.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/creator/MinecraftModuleBuilder.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -13,6 +13,7 @@ import com.demonwav.mcdev.asset.PlatformAssets import com.demonwav.mcdev.creator.buildsystem.BuildSystemPropertiesStep import com.demonwav.mcdev.creator.platformtype.PlatformTypeStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.TemplateOutdatedStep import com.demonwav.mcdev.platform.MinecraftModuleType import com.intellij.ide.projectWizard.ProjectSettingsStep @@ -40,14 +41,14 @@ } override fun getParentGroup() = MinecraftModuleType.NAME - override fun createStep(context: WizardContext) = RootNewProjectWizardStep(context).chain( - ::NewProjectWizardBaseStep, - ::GitNewProjectWizardStep, - PlatformTypeStep::create, - ::BuildSystemPropertiesStep, - ::ProjectSetupFinalizerWizardStep, - ::TemplateOutdatedStep, - ) + override fun createStep(context: WizardContext) = RootNewProjectWizardStep(context) + .nextStep(::NewProjectWizardBaseStep) + .nextStep(::GitNewProjectWizardStep) + .nextStep(PlatformTypeStep::create) + .nextStep(::BuildSystemPropertiesStep) + .nextStep(::ProjectSetupFinalizerWizardStep) + .nextStep(::TemplateOutdatedStep) + override fun getIgnoredSteps() = listOf(ProjectSettingsStep::class.java) } Index: src/main/kotlin/creator/creator-utils.kt =================================================================== --- src/main/kotlin/creator/creator-utils.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/creator/creator-utils.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -19,7 +19,6 @@ import com.intellij.ide.wizard.AbstractNewProjectWizardStep import com.intellij.ide.wizard.GitNewProjectWizardData import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.stepSequence import com.intellij.openapi.observable.properties.ObservableMutableProperty import com.intellij.openapi.observable.properties.ObservableProperty import com.intellij.openapi.project.Project @@ -139,220 +138,3 @@ } class EmptyStep(parent: NewProjectWizardStep) : AbstractNewProjectWizardStep(parent) - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - return stepSequence(this, s1, s2, s3, s4, s5) -} - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, - f6: (T6) -> T7, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep, - T7 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - val s6 = f6(s5) - return stepSequence(this, s1, s2, s3, s4, s5, s6) -} - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, - f6: (T6) -> T7, - f7: (T7) -> T8, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep, - T7 : NewProjectWizardStep, - T8 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - val s6 = f6(s5) - val s7 = f7(s6) - return stepSequence(this, s1, s2, s3, s4, s5, s6, s7) -} - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, - f6: (T6) -> T7, - f7: (T7) -> T8, - f8: (T8) -> T9, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep, - T7 : NewProjectWizardStep, - T8 : NewProjectWizardStep, - T9 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - val s6 = f6(s5) - val s7 = f7(s6) - val s8 = f8(s7) - return stepSequence(this, s1, s2, s3, s4, s5, s6, s7, s8) -} - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, - f6: (T6) -> T7, - f7: (T7) -> T8, - f8: (T8) -> T9, - f9: (T9) -> T10, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep, - T7 : NewProjectWizardStep, - T8 : NewProjectWizardStep, - T9 : NewProjectWizardStep, - T10 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - val s6 = f6(s5) - val s7 = f7(s6) - val s8 = f8(s7) - val s9 = f9(s8) - return stepSequence(this, s1, s2, s3, s4, s5, s6, s7, s8, s9) -} - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, - f6: (T6) -> T7, - f7: (T7) -> T8, - f8: (T8) -> T9, - f9: (T9) -> T10, - f10: (T10) -> T11, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep, - T7 : NewProjectWizardStep, - T8 : NewProjectWizardStep, - T9 : NewProjectWizardStep, - T10 : NewProjectWizardStep, - T11 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - val s6 = f6(s5) - val s7 = f7(s6) - val s8 = f8(s7) - val s9 = f9(s8) - val s10 = f10(s9) - return stepSequence(this, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10) -} - -@Suppress("DuplicatedCode") -fun T1.chain( - f1: (T1) -> T2, - f2: (T2) -> T3, - f3: (T3) -> T4, - f4: (T4) -> T5, - f5: (T5) -> T6, - f6: (T6) -> T7, - f7: (T7) -> T8, - f8: (T8) -> T9, - f9: (T9) -> T10, - f10: (T10) -> T11, - f11: (T11) -> T12, -): NewProjectWizardStep - where T1 : NewProjectWizardStep, - T2 : NewProjectWizardStep, - T3 : NewProjectWizardStep, - T4 : NewProjectWizardStep, - T5 : NewProjectWizardStep, - T6 : NewProjectWizardStep, - T7 : NewProjectWizardStep, - T8 : NewProjectWizardStep, - T9 : NewProjectWizardStep, - T10 : NewProjectWizardStep, - T11 : NewProjectWizardStep, - T12 : NewProjectWizardStep { - val s1 = f1(this) - val s2 = f2(s1) - val s3 = f3(s2) - val s4 = f4(s3) - val s5 = f5(s4) - val s6 = f6(s5) - val s7 = f7(s6) - val s8 = f8(s7) - val s9 = f9(s8) - val s10 = f10(s9) - val s11 = f11(s10) - return stepSequence(this, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11) -} Index: src/main/kotlin/creator/step/NewProjectWizardChainStep.kt =================================================================== --- src/main/kotlin/creator/step/NewProjectWizardChainStep.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) +++ src/main/kotlin/creator/step/NewProjectWizardChainStep.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -0,0 +1,56 @@ +/* + * Minecraft Dev for IntelliJ + * + * https://minecraftdev.org + * + * Copyright (c) 2023 minecraft-dev + * + * MIT License + */ + +package com.demonwav.mcdev.creator.step + +import com.intellij.ide.wizard.AbstractNewProjectWizardStep +import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.openapi.project.Project +import com.intellij.ui.dsl.builder.Panel + +/** + * Backported from 2023.1 + */ +class NewProjectWizardChainStep : AbstractNewProjectWizardStep { + + private val step: S + private val steps: List // including this.step + + constructor(step: S) : this(step, emptyList()) + + private constructor(step: S, descendantSteps: List) : super(step) { + this.step = step + this.steps = descendantSteps + step + } + + fun nextStep(create: (S) -> NS): NewProjectWizardChainStep { + return NewProjectWizardChainStep(create(step), steps) + } + + override fun setupUI(builder: Panel) { + for (step in steps) { + step.setupUI(builder) + } + } + + override fun setupProject(project: Project) { + for (step in steps) { + step.setupProject(project) + } + } + + companion object { + fun S.nextStep( + create: (S) -> NS + ): NewProjectWizardChainStep { + return NewProjectWizardChainStep(this).nextStep(create) + } + } +} Index: src/main/kotlin/platform/architectury/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/architectury/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/architectury/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -23,10 +23,10 @@ import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep import com.demonwav.mcdev.creator.step.AbstractModNameStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.util.MinecraftTemplates import com.demonwav.mcdev.util.SemanticVersion import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project private val NewProjectWizardStep.architecturyGroup: String get() { @@ -42,7 +42,7 @@ override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> ArchitecturyGradleFilesStep(parent).chain(::GradleWrapperStep) + BuildSystemSupport.PRE_STEP -> ArchitecturyGradleFilesStep(parent).nextStep(::GradleWrapperStep) BuildSystemSupport.POST_STEP -> GradleImportStep(parent) else -> EmptyStep(parent) } Index: src/main/kotlin/platform/architectury/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/architectury/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/architectury/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -10,7 +10,6 @@ package com.demonwav.mcdev.platform.architectury.creator -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.platformtype.ModPlatformStep import com.demonwav.mcdev.creator.step.AbstractCollapsibleStep import com.demonwav.mcdev.creator.step.AbstractLatentStep @@ -20,6 +19,7 @@ import com.demonwav.mcdev.creator.step.IssueTrackerStep import com.demonwav.mcdev.creator.step.LicenseStep import com.demonwav.mcdev.creator.step.ModNameStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.RepositoryStep import com.demonwav.mcdev.creator.step.UseMixinsStep import com.demonwav.mcdev.creator.step.WebsiteStep @@ -31,7 +31,6 @@ import com.demonwav.mcdev.util.asyncIO import com.demonwav.mcdev.util.bindEnabled import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.observable.util.bindBooleanStorage import com.intellij.openapi.observable.util.transform import com.intellij.openapi.project.Project @@ -64,18 +63,17 @@ } override fun createStep(data: ArchitecturyVersionData): NewProjectWizardStep { - return ArchitecturyVersionChainStep(this, data).chain( - ::UseMixinsStep, - ::ModNameStep, - ::LicenseStep, - ::ArchitecturyOptionalSettingsStep, - ::ArchitecturyBuildSystemStep, - ::ArchitecturyProjectFilesStep, - ::ArchitecturyCommonMainClassStep, - ::ArchitecturyForgeMainClassStep, - ::ArchitecturyFabricMainClassStep, - ::ArchitecturyPostBuildSystemStep, - ) + return ArchitecturyVersionChainStep(this, data) + .nextStep(::UseMixinsStep) + .nextStep(::ModNameStep) + .nextStep(::LicenseStep) + .nextStep(::ArchitecturyOptionalSettingsStep) + .nextStep(::ArchitecturyBuildSystemStep) + .nextStep(::ArchitecturyProjectFilesStep) + .nextStep(::ArchitecturyCommonMainClassStep) + .nextStep(::ArchitecturyForgeMainClassStep) + .nextStep(::ArchitecturyFabricMainClassStep) + .nextStep(::ArchitecturyPostBuildSystemStep) } class Factory : ModPlatformStep.Factory { @@ -194,10 +192,9 @@ class ArchitecturyOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::WebsiteStep, - ::RepositoryStep, - ::IssueTrackerStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::WebsiteStep) + .nextStep(::RepositoryStep) + .nextStep(::IssueTrackerStep) } Index: src/main/kotlin/platform/bukkit/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/bukkit/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/bukkit/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -24,20 +24,19 @@ import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.SimpleMcVersionStep import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project class BukkitGradleSupport : BuildSystemSupport { override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> BukkitGradleFilesStep(parent).chain( - ::BukkitPatchBuildGradleStep, - ::GradleWrapperStep, - ) - BuildSystemSupport.POST_STEP -> GradleImportStep(parent).chain(::ReformatBuildGradleStep) + BuildSystemSupport.PRE_STEP -> BukkitGradleFilesStep(parent) + .nextStep(::BukkitPatchBuildGradleStep) + .nextStep(::GradleWrapperStep) + BuildSystemSupport.POST_STEP -> GradleImportStep(parent).nextStep(::ReformatBuildGradleStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/bukkit/creator/maven-steps.kt =================================================================== --- src/main/kotlin/platform/bukkit/creator/maven-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/bukkit/creator/maven-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -20,10 +20,10 @@ import com.demonwav.mcdev.creator.buildsystem.addDefaultMavenProperties import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.SimpleMcVersionStep import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.psi.xml.XmlTag import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel @@ -33,8 +33,8 @@ override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> BukkitMavenFilesStep(parent).chain(::BukkitPatchPomStep) - BuildSystemSupport.POST_STEP -> MavenImportStep(parent).chain(::ReformatPomStep) + BuildSystemSupport.PRE_STEP -> BukkitMavenFilesStep(parent).nextStep(::BukkitPatchPomStep) + BuildSystemSupport.POST_STEP -> MavenImportStep(parent).nextStep(::ReformatPomStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/bukkit/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/bukkit/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/bukkit/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -13,7 +13,6 @@ import com.demonwav.mcdev.creator.PlatformVersion import com.demonwav.mcdev.creator.buildsystem.BuildDependency import com.demonwav.mcdev.creator.buildsystem.BuildRepository -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.getVersionSelector import com.demonwav.mcdev.creator.platformtype.PluginPlatformStep import com.demonwav.mcdev.creator.step.AbstractCollapsibleStep @@ -23,6 +22,7 @@ import com.demonwav.mcdev.creator.step.DependStep import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.PluginNameStep import com.demonwav.mcdev.creator.step.SimpleMcVersionStep import com.demonwav.mcdev.creator.step.SoftDependStep @@ -76,14 +76,13 @@ } override fun createStep(data: PlatformVersion) = - SimpleMcVersionStep(this, data.versions.mapNotNull(SemanticVersion::tryParse)).chain( - ::PluginNameStep, - ::MainClassStep, - ::BukkitOptionalSettingsStep, - ::BukkitBuildSystemStep, - ::BukkitProjectFilesStep, - ::BukkitPostBuildSystemStep, - ) + SimpleMcVersionStep(this, data.versions.mapNotNull(SemanticVersion::tryParse)) + .nextStep(::PluginNameStep) + .nextStep(::MainClassStep) + .nextStep(::BukkitOptionalSettingsStep) + .nextStep(::BukkitBuildSystemStep) + .nextStep(::BukkitProjectFilesStep) + .nextStep(::BukkitPostBuildSystemStep) override fun setupProject(project: Project) { data.putUserData(KEY, this) @@ -102,15 +101,14 @@ class BukkitOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::WebsiteStep, - ::BukkitLogPrefixStep, - ::BukkitLoadOrderStep, - ::BukkitLoadBeforeStep, - ::DependStep, - ::SoftDependStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::WebsiteStep) + .nextStep(::BukkitLogPrefixStep) + .nextStep(::BukkitLoadOrderStep) + .nextStep(::BukkitLoadBeforeStep) + .nextStep(::DependStep) + .nextStep(::SoftDependStep) } class BukkitLogPrefixStep(parent: NewProjectWizardStep) : AbstractOptionalStringStep(parent) { Index: src/main/kotlin/platform/bungeecord/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/bungeecord/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/bungeecord/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -23,21 +23,20 @@ import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.SimpleMcVersionStep import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.baseData import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project class BungeeGradleSupport : BuildSystemSupport { override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> BungeeGradleFilesStep(parent).chain( - ::BungeePatchBuildGradleStep, - ::GradleWrapperStep, - ) - BuildSystemSupport.POST_STEP -> GradleImportStep(parent).chain(::ReformatBuildGradleStep) + BuildSystemSupport.PRE_STEP -> BungeeGradleFilesStep(parent) + .nextStep(::BungeePatchBuildGradleStep) + .nextStep(::GradleWrapperStep) + BuildSystemSupport.POST_STEP -> GradleImportStep(parent).nextStep(::ReformatBuildGradleStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/bungeecord/creator/maven-steps.kt =================================================================== --- src/main/kotlin/platform/bungeecord/creator/maven-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/bungeecord/creator/maven-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -20,10 +20,10 @@ import com.demonwav.mcdev.creator.buildsystem.addDefaultMavenProperties import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.SimpleMcVersionStep import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.psi.xml.XmlTag import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel @@ -33,8 +33,8 @@ override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> BungeeMavenFilesStep(parent).chain(::BungeePatchPomStep) - BuildSystemSupport.POST_STEP -> MavenImportStep(parent).chain(::ReformatPomStep) + BuildSystemSupport.PRE_STEP -> BungeeMavenFilesStep(parent).nextStep(::BungeePatchPomStep) + BuildSystemSupport.POST_STEP -> MavenImportStep(parent).nextStep(::ReformatPomStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/bungeecord/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/bungeecord/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/bungeecord/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -13,7 +13,6 @@ import com.demonwav.mcdev.creator.PlatformVersion import com.demonwav.mcdev.creator.buildsystem.BuildDependency import com.demonwav.mcdev.creator.buildsystem.BuildRepository -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.getVersionSelector import com.demonwav.mcdev.creator.platformtype.PluginPlatformStep import com.demonwav.mcdev.creator.step.AbstractCollapsibleStep @@ -22,6 +21,7 @@ import com.demonwav.mcdev.creator.step.DependStep import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.PluginNameStep import com.demonwav.mcdev.creator.step.SimpleMcVersionStep import com.demonwav.mcdev.creator.step.SoftDependStep @@ -31,7 +31,6 @@ import com.intellij.ide.wizard.AbstractNewProjectWizardMultiStep import com.intellij.ide.wizard.NewProjectWizardMultiStepFactory import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key @@ -71,14 +70,13 @@ } override fun createStep(data: PlatformVersion) = - SimpleMcVersionStep(this, data.versions.mapNotNull(SemanticVersion::tryParse)).chain( - ::PluginNameStep, - ::MainClassStep, - ::BungeeOptionalSettingsStep, - ::BungeeBuildSystemStep, - ::BungeeProjectFilesStep, - ::BungeePostBuildSystemStep, - ) + SimpleMcVersionStep(this, data.versions.mapNotNull(SemanticVersion::tryParse)) + .nextStep(::PluginNameStep) + .nextStep(::MainClassStep) + .nextStep(::BungeeOptionalSettingsStep) + .nextStep(::BungeeBuildSystemStep) + .nextStep(::BungeeProjectFilesStep) + .nextStep(::BungeePostBuildSystemStep) override fun setupProject(project: Project) { data.putUserData(KEY, this) @@ -97,9 +95,8 @@ class BungeeOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::DependStep, - ::SoftDependStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::DependStep) + .nextStep(::SoftDependStep) } Index: src/main/kotlin/platform/fabric/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/fabric/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/fabric/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -22,9 +22,9 @@ import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project class FabricGradleSupport : BuildSystemSupport { @@ -32,7 +32,7 @@ override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> FabricGradleFilesStep(parent).chain(::GradleWrapperStep) + BuildSystemSupport.PRE_STEP -> FabricGradleFilesStep(parent).nextStep(::GradleWrapperStep) BuildSystemSupport.POST_STEP -> GradleImportStep(parent) else -> EmptyStep(parent) } Index: src/main/kotlin/platform/fabric/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/fabric/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/fabric/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -10,7 +10,6 @@ package com.demonwav.mcdev.platform.fabric.creator -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.platformtype.ModPlatformStep import com.demonwav.mcdev.creator.step.AbstractCollapsibleStep import com.demonwav.mcdev.creator.step.AbstractLatentStep @@ -19,6 +18,7 @@ import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.LicenseStep import com.demonwav.mcdev.creator.step.ModNameStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.RepositoryStep import com.demonwav.mcdev.creator.step.UseMixinsStep import com.demonwav.mcdev.creator.step.WaitForSmartModeStep @@ -31,7 +31,6 @@ import com.demonwav.mcdev.util.bindEnabled import com.intellij.ide.wizard.AbstractNewProjectWizardStep import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.observable.util.bindBooleanStorage import com.intellij.openapi.observable.util.bindStorage import com.intellij.openapi.observable.util.transform @@ -63,18 +62,16 @@ override fun createStep(data: Pair): NewProjectWizardStep { val (fabricVersions, apiVersions) = data return FabricVersionChainStep(this, fabricVersions, apiVersions) - .chain( - ::FabricEnvironmentStep, - ::UseMixinsStep, - ::ModNameStep, - ::LicenseStep, - ::FabricOptionalSettingsStep, - ::FabricBuildSystemStep, - ::FabricDumbModeFilesStep, - ::FabricPostBuildSystemStep, - ::WaitForSmartModeStep, - ::FabricSmartModeFilesStep, - ) + .nextStep(::FabricEnvironmentStep) + .nextStep(::UseMixinsStep) + .nextStep(::ModNameStep) + .nextStep(::LicenseStep) + .nextStep(::FabricOptionalSettingsStep) + .nextStep(::FabricBuildSystemStep) + .nextStep(::FabricDumbModeFilesStep) + .nextStep(::FabricPostBuildSystemStep) + .nextStep(::WaitForSmartModeStep) + .nextStep(::FabricSmartModeFilesStep) } class Factory : ModPlatformStep.Factory { @@ -253,9 +250,8 @@ class FabricOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::WebsiteStep, - ::RepositoryStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::WebsiteStep) + .nextStep(::RepositoryStep) } Index: src/main/kotlin/platform/forge/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/forge/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/forge/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -25,12 +25,12 @@ import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep import com.demonwav.mcdev.creator.step.AbstractModNameStep import com.demonwav.mcdev.creator.step.AuthorsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.UseMixinsStep import com.demonwav.mcdev.util.MinecraftTemplates import com.demonwav.mcdev.util.MinecraftVersions import com.demonwav.mcdev.util.SemanticVersion import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.application.WriteAction import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.LocalFileSystem @@ -47,8 +47,8 @@ override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> ForgeGradleFilesStep(parent).chain(::GradleWrapperStep) - BuildSystemSupport.POST_STEP -> ForgeCompileJavaStep(parent).chain(::GradleImportStep) + BuildSystemSupport.PRE_STEP -> ForgeGradleFilesStep(parent).nextStep(::GradleWrapperStep) + BuildSystemSupport.POST_STEP -> ForgeCompileJavaStep(parent).nextStep(::GradleImportStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/forge/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/forge/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/forge/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -10,7 +10,6 @@ package com.demonwav.mcdev.platform.forge.creator -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.platformtype.ModPlatformStep import com.demonwav.mcdev.creator.step.AbstractCollapsibleStep import com.demonwav.mcdev.creator.step.AbstractLatentStep @@ -20,6 +19,7 @@ import com.demonwav.mcdev.creator.step.LicenseStep import com.demonwav.mcdev.creator.step.MainClassStep import com.demonwav.mcdev.creator.step.ModNameStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.UpdateUrlStep import com.demonwav.mcdev.creator.step.UseMixinsStep import com.demonwav.mcdev.creator.step.WebsiteStep @@ -28,7 +28,6 @@ import com.demonwav.mcdev.util.SemanticVersion import com.demonwav.mcdev.util.asyncIO import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key import com.intellij.util.IncorrectOperationException @@ -44,17 +43,15 @@ } override fun createStep(data: ForgeVersion) = ForgeVersionChainStep(this, data) - .chain( - ::ModNameStep, - ::MainClassStep, - ::UseMixinsStep, - ::LicenseStep, - ::ForgeOptionalSettingsStep, - ::ForgeBuildSystemStep, - ::ForgeProjectFilesStep, - ::ForgeMixinsJsonStep, - ::ForgePostBuildSystemStep, - ) + .nextStep(::ModNameStep) + .nextStep(::MainClassStep) + .nextStep(::UseMixinsStep) + .nextStep(::LicenseStep) + .nextStep(::ForgeOptionalSettingsStep) + .nextStep(::ForgeBuildSystemStep) + .nextStep(::ForgeProjectFilesStep) + .nextStep(::ForgeMixinsJsonStep) + .nextStep(::ForgePostBuildSystemStep) class Factory : ModPlatformStep.Factory { override val name = "Forge" @@ -91,9 +88,8 @@ class ForgeOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::WebsiteStep, - ::UpdateUrlStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::WebsiteStep) + .nextStep(::UpdateUrlStep) } Index: src/main/kotlin/platform/sponge/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/sponge/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/sponge/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -30,13 +30,13 @@ import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.LicenseStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.WebsiteStep import com.demonwav.mcdev.util.MinecraftTemplates import com.demonwav.mcdev.util.SemanticVersion import com.intellij.ide.starters.local.GeneratorEmptyDirectory import com.intellij.ide.wizard.NewProjectWizardBaseData import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project class SpongeGradleSupport : BuildSystemSupport { @@ -44,8 +44,8 @@ override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> SpongeGradleFilesStep(parent).chain(::GradleWrapperStep) - BuildSystemSupport.POST_STEP -> SpongeGradleImportStep(parent).chain(::ReformatBuildGradleStep) + BuildSystemSupport.PRE_STEP -> SpongeGradleFilesStep(parent).nextStep(::GradleWrapperStep) + BuildSystemSupport.POST_STEP -> SpongeGradleImportStep(parent).nextStep(::ReformatBuildGradleStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/sponge/creator/maven-steps.kt =================================================================== --- src/main/kotlin/platform/sponge/creator/maven-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/sponge/creator/maven-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -33,10 +33,10 @@ import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.LicenseStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.WebsiteStep import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.psi.xml.XmlTag import java.util.EnumSet @@ -45,11 +45,10 @@ class SpongeMavenSupport : BuildSystemSupport { override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> SpongeMavenFilesStep(parent).chain(::SpongePatchPomStep) - BuildSystemSupport.POST_STEP -> SpongeMavenProjectFilesStep(parent).chain( - ::MavenImportStep, - ::ReformatPomStep, - ) + BuildSystemSupport.PRE_STEP -> SpongeMavenFilesStep(parent).nextStep(::SpongePatchPomStep) + BuildSystemSupport.POST_STEP -> SpongeMavenProjectFilesStep(parent) + .nextStep(::MavenImportStep) + .nextStep(::ReformatPomStep) else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/sponge/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/sponge/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/sponge/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -11,7 +11,6 @@ package com.demonwav.mcdev.platform.sponge.creator import com.demonwav.mcdev.creator.JdkProjectSetupFinalizer -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.platformtype.PluginPlatformStep import com.demonwav.mcdev.creator.step.AbstractCollapsibleStep @@ -22,6 +21,7 @@ import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.LicenseStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.PluginNameStep import com.demonwav.mcdev.creator.step.WebsiteStep import com.demonwav.mcdev.platform.sponge.SpongeVersion @@ -29,7 +29,6 @@ import com.demonwav.mcdev.util.SemanticVersion import com.demonwav.mcdev.util.onShown import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.JavaSdkVersion import com.intellij.openapi.util.Key @@ -42,15 +41,14 @@ override suspend fun computeData() = SpongeVersion.downloadData() - override fun createStep(data: SpongeVersion) = SpongeApiVersionStep(this, data).chain( - ::PluginNameStep, - ::MainClassStep, - ::LicenseStep, - ::SpongeOptionalSettingsStep, - ::SpongeBuildSystemStep, - ::SpongeProjectFilesStep, - ::SpongePostBuildSystemStep, - ) + override fun createStep(data: SpongeVersion) = SpongeApiVersionStep(this, data) + .nextStep(::PluginNameStep) + .nextStep(::MainClassStep) + .nextStep(::LicenseStep) + .nextStep(::SpongeOptionalSettingsStep) + .nextStep(::SpongeBuildSystemStep) + .nextStep(::SpongeProjectFilesStep) + .nextStep(::SpongePostBuildSystemStep) class Factory : PluginPlatformStep.Factory { override val name = "Sponge" @@ -101,9 +99,8 @@ class SpongeOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::WebsiteStep, - ::DependStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::WebsiteStep) + .nextStep(::DependStep) } Index: src/main/kotlin/platform/velocity/creator/gradle-steps.kt =================================================================== --- src/main/kotlin/platform/velocity/creator/gradle-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/velocity/creator/gradle-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -28,25 +28,22 @@ import com.demonwav.mcdev.creator.splitPackage import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.platform.velocity.util.VelocityConstants import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.baseData import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project class VelocityGradleSupport : BuildSystemSupport { - @Suppress("MoveLambdaOutsideParentheses") override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> VelocityGradleFilesStep(parent).chain( - ::VelocityPatchGradleFilesStep, - ::GradleWrapperStep, - ) - BuildSystemSupport.POST_STEP -> GradleImportStep(parent).chain( - ::ReformatBuildGradleStep, - { VelocityModifyMainClassStep(it, true) }, - ) + BuildSystemSupport.PRE_STEP -> VelocityGradleFilesStep(parent) + .nextStep(::VelocityPatchGradleFilesStep) + .nextStep(::GradleWrapperStep) + BuildSystemSupport.POST_STEP -> GradleImportStep(parent) + .nextStep(::ReformatBuildGradleStep) + .nextStep { VelocityModifyMainClassStep(it, true) } else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/velocity/creator/maven-steps.kt =================================================================== --- src/main/kotlin/platform/velocity/creator/maven-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/velocity/creator/maven-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -23,10 +23,10 @@ import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.gitEnabled import com.demonwav.mcdev.creator.step.AbstractLongRunningAssetsStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.platform.velocity.util.VelocityConstants import com.demonwav.mcdev.util.MinecraftTemplates import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.psi.xml.XmlTag import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel @@ -34,11 +34,10 @@ class VelocityMavenSupport : BuildSystemSupport { override fun createStep(step: String, parent: NewProjectWizardStep): NewProjectWizardStep { return when (step) { - BuildSystemSupport.PRE_STEP -> VelocityMavenFilesStep(parent).chain(::VelocityPatchPomStep) - BuildSystemSupport.POST_STEP -> MavenImportStep(parent).chain( - ::ReformatPomStep, - { VelocityModifyMainClassStep(it, false) }, - ) + BuildSystemSupport.PRE_STEP -> VelocityMavenFilesStep(parent).nextStep(::VelocityPatchPomStep) + BuildSystemSupport.POST_STEP -> MavenImportStep(parent) + .nextStep(::ReformatPomStep) + .nextStep { VelocityModifyMainClassStep(it, false) } else -> EmptyStep(parent) } } Index: src/main/kotlin/platform/velocity/creator/ui-steps.kt =================================================================== --- src/main/kotlin/platform/velocity/creator/ui-steps.kt (revision 5e500d19455ed04b7a98521c1f425180fd7e558f) +++ src/main/kotlin/platform/velocity/creator/ui-steps.kt (revision 1a8b7499f2141f08f596d1381a2ca304641d7848) @@ -12,7 +12,6 @@ import com.demonwav.mcdev.creator.JdkProjectSetupFinalizer import com.demonwav.mcdev.creator.PlatformVersion -import com.demonwav.mcdev.creator.chain import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.getVersionSelector import com.demonwav.mcdev.creator.platformtype.PluginPlatformStep @@ -23,6 +22,7 @@ import com.demonwav.mcdev.creator.step.DependStep import com.demonwav.mcdev.creator.step.DescriptionStep import com.demonwav.mcdev.creator.step.MainClassStep +import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep import com.demonwav.mcdev.creator.step.PluginNameStep import com.demonwav.mcdev.creator.step.WebsiteStep import com.demonwav.mcdev.platform.PlatformType @@ -30,7 +30,6 @@ import com.demonwav.mcdev.util.asyncIO import com.demonwav.mcdev.util.onShown import com.intellij.ide.wizard.NewProjectWizardStep -import com.intellij.ide.wizard.chain import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.JavaSdkVersion import com.intellij.openapi.util.Key @@ -49,14 +48,13 @@ } override fun createStep(data: PlatformVersion) = - VelocityVersionStep(this, data.versions.mapNotNull(SemanticVersion::tryParse)).chain( - ::PluginNameStep, - ::MainClassStep, - ::VelocityOptionalSettingsStep, - ::VelocityBuildSystemStep, - ::VelocityProjectFilesStep, - ::VelocityPostBuildSystemStep, - ) + VelocityVersionStep(this, data.versions.mapNotNull(SemanticVersion::tryParse)) + .nextStep(::PluginNameStep) + .nextStep(::MainClassStep) + .nextStep(::VelocityOptionalSettingsStep) + .nextStep(::VelocityBuildSystemStep) + .nextStep(::VelocityProjectFilesStep) + .nextStep(::VelocityPostBuildSystemStep) class Factory : PluginPlatformStep.Factory { override val name = "Velocity" @@ -104,9 +102,8 @@ class VelocityOptionalSettingsStep(parent: NewProjectWizardStep) : AbstractCollapsibleStep(parent) { override val title = "Optional Settings" - override fun createStep() = DescriptionStep(this).chain( - ::AuthorsStep, - ::WebsiteStep, - ::DependStep, - ) + override fun createStep() = DescriptionStep(this) + .nextStep(::AuthorsStep) + .nextStep(::WebsiteStep) + .nextStep(::DependStep) }