[kotlin] Changed Kotlin New Gradle wizard default to generate simple single-module projects

This commit changes the combo box to instead offer the user to generate multi-module projects, which is off by default.

^KTIJ-31797 fixed


(cherry picked from commit c7a5d72c56c2b8b91b4f5cbf33deda097d84ec63)

IJ-CR-148070

GitOrigin-RevId: a318fa0978b7630272bda4547e68499a032da597
This commit is contained in:
Frederik Haselmeier
2024-11-01 11:06:35 +00:00
committed by intellij-monorepo-bot
parent edb1b1cd27
commit 9ea5dbf0f3
5 changed files with 24 additions and 24 deletions
@@ -33,7 +33,7 @@ object NewProjectWizardCollector : CounterUsagesCollector() {
override fun getGroup(): EventLogGroup = GROUP
val GROUP: EventLogGroup = EventLogGroup("new.project.wizard.interactions", 37)
val GROUP: EventLogGroup = EventLogGroup("new.project.wizard.interactions", 38)
private val LANGUAGES = listOf(
NewProjectWizardConstants.Language.JAVA, NewProjectWizardConstants.Language.KOTLIN,
@@ -70,7 +70,7 @@ object NewProjectWizardCollector : CounterUsagesCollector() {
private val groovyVersionField = EventFields.Version
private val groovySourceTypeField = EventFields.String("groovy_sdk_type", GROOVY_SDKS)
private val useCompactProjectStructureField = EventFields.Boolean("use_compact_project_structure")
private val generateSingleModuleBuildField = EventFields.Boolean("generate_single_module_build")
private val generateMultipleModulesField = EventFields.Boolean("generate_multiple_modules")
private val pluginField = EventFields.String("plugin_selected", LANGUAGES)
private val baseFields = arrayOf(sessionIdField, screenNumField, generatorTypeField)
@@ -120,8 +120,8 @@ object NewProjectWizardCollector : CounterUsagesCollector() {
private val useCompactProjectStructureChanged = GROUP.registerVarargEvent("build.system.use.compact.project.structure.changed", *buildSystemFields, useCompactProjectStructureField)
private val useCompactProjectStructureFinished = GROUP.registerVarargEvent("build.system.use.compact.project.structure.finished", *buildSystemFields, useCompactProjectStructureField)
private val generateSingleModuleBuildChanged = GROUP.registerVarargEvent("kotlin.generate.single.module.build.changed", *buildSystemFields, generateSingleModuleBuildField)
private val generateSingleModuleBuildFinished = GROUP.registerVarargEvent("kotlin.generate.single.module.build.finished", *buildSystemFields, generateSingleModuleBuildField)
private val generateMultipleModulesChanged = GROUP.registerVarargEvent("kotlin.generate.multiple.modules.changed", *buildSystemFields, generateMultipleModulesField)
private val generateMultipleModulesFinished = GROUP.registerVarargEvent("kotlin.generate.multiple.modules.finished", *buildSystemFields, generateMultipleModulesField)
private val kotlinClickKmpWizardLinkEvent = GROUP.registerVarargEvent("kotlin.kmp.wizard.link.clicked", *buildSystemFields)
// @formatter:on
@@ -320,11 +320,11 @@ object NewProjectWizardCollector : CounterUsagesCollector() {
fun NewProjectWizardStep.logUseCompactProjectStructureFinished(isSelected: Boolean): Unit =
useCompactProjectStructureFinished.logBuildSystemEvent(this, useCompactProjectStructureField with isSelected)
fun NewProjectWizardStep.logGenerateSingleModuleBuildChanged(isSelected: Boolean): Unit =
generateSingleModuleBuildChanged.logBuildSystemEvent(this, generateSingleModuleBuildField with isSelected)
fun NewProjectWizardStep.logGenerateMultipleModulesChanged(isSelected: Boolean): Unit =
generateMultipleModulesChanged.logBuildSystemEvent(this, generateMultipleModulesField with isSelected)
fun NewProjectWizardStep.logGenerateSingleModuleBuildFinished(isSelected: Boolean): Unit =
generateSingleModuleBuildFinished.logBuildSystemEvent(this, generateSingleModuleBuildField with isSelected)
fun NewProjectWizardStep.logGenerateMultipleModulesFinished(isSelected: Boolean): Unit =
generateMultipleModulesFinished.logBuildSystemEvent(this, generateMultipleModulesField with isSelected)
fun NewProjectWizardStep.logKmpWizardLinkClicked(): Unit =
kotlinClickKmpWizardLinkEvent.logBuildSystemEvent(this)
@@ -5,8 +5,8 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.Base.logAddSampl
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Base.logAddSampleCodeFinished
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Base.logAddSampleOnboardingTipsChanged
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Base.logAddSampleOnboardingTipsFinished
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Kotlin.logGenerateSingleModuleBuildChanged
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Kotlin.logGenerateSingleModuleBuildFinished
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Kotlin.logGenerateMultipleModulesChanged
import com.intellij.ide.projectWizard.NewProjectWizardCollector.Kotlin.logGenerateMultipleModulesFinished
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.GRADLE
import com.intellij.ide.projectWizard.generators.AssetsJava
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
@@ -72,7 +72,7 @@ import org.toml.lang.psi.TomlFile
import org.toml.lang.psi.TomlInlineTable
import org.toml.lang.psi.TomlTable
private const val GENERATE_SINGLE_MODULE_PROPERTY_NAME: String = "NewProjectWizard.generateSingleModule"
private const val GENERATE_MULTIPLE_MODULES_PROPERTY_NAME: String = "NewProjectWizard.generateMultipleModules"
private const val KOTLIN_GRADLE_PLUGIN_ID = "org.jetbrains.kotlin:kotlin-gradle-plugin"
@@ -109,10 +109,10 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard
override var generateOnboardingTips by generateOnboardingTipsProperty
val generateSingleModuleProperty = propertyGraph.property(false)
.bindBooleanStorage(GENERATE_SINGLE_MODULE_PROPERTY_NAME)
private val generateMultipleModulesProperty = propertyGraph.property(false)
.bindBooleanStorage(GENERATE_MULTIPLE_MODULES_PROPERTY_NAME)
override var generateSingleModule by generateSingleModuleProperty
override var generateMultipleModules by generateMultipleModulesProperty
private val gradleVersionSupportsConventionPlugins = propertyGraph.property(false)
@@ -124,7 +124,7 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard
}
internal val shouldGenerateMultipleModules
get() = !generateSingleModule && gradleDsl == GradleDsl.KOTLIN && context.isCreatingNewProject &&
get() = generateMultipleModules && gradleDsl == GradleDsl.KOTLIN && context.isCreatingNewProject &&
gradleVersionSupportsConventionPlugins.get()
private fun setupSampleCodeUI(builder: Panel) {
@@ -149,13 +149,13 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard
private fun setupMultipleModulesUI(builder: Panel) {
builder.row {
checkBox(KotlinNewProjectWizardUIBundle.message("label.project.wizard.new.project.generate.single.module"))
.bindSelected(generateSingleModuleProperty)
checkBox(KotlinNewProjectWizardUIBundle.message("label.project.wizard.new.project.generate.multiple.modules"))
.bindSelected(generateMultipleModulesProperty)
.enabledIf(gradleDslProperty.equalsTo(GradleDsl.KOTLIN))
.whenStateChangedFromUi { logGenerateSingleModuleBuildChanged(it) }
.onApply { logGenerateSingleModuleBuildFinished(generateSingleModule) }
.whenStateChangedFromUi { logGenerateMultipleModulesChanged(it) }
.onApply { logGenerateMultipleModulesFinished(generateMultipleModules) }
contextHelp(KotlinNewProjectWizardUIBundle.message("tooltip.project.wizard.new.project.generate.single.module"))
contextHelp(KotlinNewProjectWizardUIBundle.message("tooltip.project.wizard.new.project.generate.multiple.modules"))
}.visibleIf(gradleDslProperty.equalsTo(GradleDsl.KOTLIN).and(gradleVersionSupportsConventionPlugins))
}
@@ -8,7 +8,7 @@ import org.jetbrains.plugins.gradle.service.project.wizard.GradleNewProjectWizar
interface GradleKotlinNewProjectWizardData : GradleNewProjectWizardData, KotlinOnboardingProjectWizardData {
var generateSingleModule: Boolean
var generateMultipleModules: Boolean
companion object {
@@ -34,8 +34,8 @@ finish.button.text=Finish
dialog.title.invalid.project.name=Invalid Project Name
label.project.wizard.new.project.use.compact.project.structure=Use compact project structure
tooltip.project.wizard.new.project.use.compact.project.structure=A concise project structure with less folder nesting (src/Main.kt)
label.project.wizard.new.project.generate.single.module=Generate single module build
tooltip.project.wizard.new.project.generate.single.module=Generates a simple single module more suitable for small applications or testing
label.project.wizard.new.project.generate.multiple.modules=Generate multi-module build
tooltip.project.wizard.new.project.generate.multiple.modules=Multi-module setup suitable for medium and large projects
project.wizard.new.project.kotlin.comment=For targeting different platforms, please use <a>Kotlin Multiplatform</a>.
@@ -134,7 +134,7 @@ class GradleKotlinNewProjectWizardTest : GradleCreateProjectTestCase(), NewKotli
baseData!!.path = testRoot.toNioPath().getResolvedPath(path).parent.toCanonicalPath()
kotlinBuildSystemData!!.buildSystem = GRADLE
kotlinGradleData!!.parentData = parentData
kotlinGradleData!!.generateSingleModule = !generateMultipleModules
kotlinGradleData!!.generateMultipleModules = generateMultipleModules
kotlinGradleData!!.gradleDsl = if (useKotlinDsl) GradleDsl.KOTLIN else GradleDsl.GROOVY
kotlinGradleData!!.groupId = groupId
kotlinGradleData!!.artifactId = name