diff options
author | Ilya Kirillov <ilya.kirillov@jetbrains.com> | 2020-10-13 01:57:46 +0300 |
---|---|---|
committer | kotlin-ide-monorepo-bot <kotlin-ide-monorepo-bot-no-reply@jetbrains.com> | 2020-10-19 11:29:01 +0000 |
commit | 8f8a63f4e0465a2c14ac91710b0122acd18f07c5 (patch) | |
tree | bcd3aa68c4b13a166c2e0dcb2df54876dd739c73 /project-wizard | |
parent | a9e07b37fd9642ee6ab50f659fa6895a90ccda41 (diff) | |
download | intellij-kotlin-8f8a63f4e0465a2c14ac91710b0122acd18f07c5.tar.gz |
Wizard: use different Kotlin version for compose templates
Original commit: b7017c233ec515c386d5acd30db6cb7a4e14ddaa
GitOrigin-RevId: d81c514f2cb04b2f5d55a8dc3935a73005569f41
Diffstat (limited to 'project-wizard')
18 files changed, 50 insertions, 24 deletions
diff --git a/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt b/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt index 46e19671e0bf..8a210dd48961 100644 --- a/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt +++ b/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.service.EapVersionDownloade import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionKind import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.BintrayRepository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository @@ -18,7 +19,7 @@ class KotlinVersionProviderTestWizardService() : KotlinVersionProviderService(), get() = System.getProperty("cacheRedirectorEnabled")?.toBoolean() == true - override fun getKotlinVersion(): WizardKotlinVersion = + override fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion = kotlinVersionWithDefaultValues(TEST_KOTLIN_VERSION) override fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = if (useCacheRedirector) { diff --git a/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties b/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties index f9c1aff0b124..b751f2c22920 100644 --- a/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties +++ b/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties @@ -39,7 +39,7 @@ project.kind.android=Android project.kind.kotlin.js=Kotlin/JS project.kind.multiplatform=Multiplatform project.kind.singleplatform=JVM -project.kind.compose=JetBrains Compose +project.kind.compose=JetBrains Compose (Experimental) project=Project diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt index 3e9880179c4e..3b845ff14be1 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt @@ -16,6 +16,8 @@ object Versions { val JUNIT5 = version("5.6.0") val JETBRAINS_COMPOSE = version("0.1.0-build63") + val KOTLIN_VERSION_FOR_COMPOSE = version("1.4.0") + object ANDROID { val ANDROID_MATERIAL = version("1.2.1") val ANDROIDX_APPCOMPAT = version("1.2.0") diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt index 4a37e9815773..4920083932ed 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult import org.jetbrains.kotlin.tools.projectWizard.core.asNullable import org.jetbrains.kotlin.tools.projectWizard.core.compute import org.jetbrains.kotlin.tools.projectWizard.core.safe +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository @@ -23,7 +24,7 @@ import java.util.stream.Collectors data class WizardKotlinVersion(val version: Version, val kind: KotlinVersionKind, val repository: Repository) abstract class KotlinVersionProviderService : WizardService { - abstract fun getKotlinVersion(): WizardKotlinVersion + abstract fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion protected fun kotlinVersionWithDefaultValues(version: Version) = WizardKotlinVersion( version, @@ -52,7 +53,7 @@ abstract class KotlinVersionProviderService : WizardService { class KotlinVersionProviderServiceImpl : KotlinVersionProviderService(), IdeaIndependentWizardService { - override fun getKotlinVersion(): WizardKotlinVersion = + override fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion = kotlinVersionWithDefaultValues(Versions.KOTLIN) } diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt index ed9e01e81a43..11ff03ed036a 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt @@ -62,7 +62,7 @@ class KotlinPlugin(context: Context) : Plugin(context) { title = KotlinNewProjectWizardBundle.message("plugin.kotlin.downloading.kotlin.versions") withAction { - val version = service<KotlinVersionProviderService>().getKotlinVersion() + val version = service<KotlinVersionProviderService>().getKotlinVersion(projectKind.settingValue) KotlinPlugin.version.update { version.asSuccess() } } } @@ -194,12 +194,12 @@ class KotlinPlugin(context: Context) : Plugin(context) { } -enum class ProjectKind(override val text: String) : DisplayableSettingItem { +enum class ProjectKind(override val text: String, val message: String? = null) : DisplayableSettingItem { Singleplatform(KotlinNewProjectWizardBundle.message("project.kind.singleplatform")), Multiplatform(KotlinNewProjectWizardBundle.message("project.kind.multiplatform")), Android(KotlinNewProjectWizardBundle.message("project.kind.android")), Js(KotlinNewProjectWizardBundle.message("project.kind.kotlin.js")), - COMPOSE(KotlinNewProjectWizardBundle.message("project.kind.compose")) + COMPOSE(KotlinNewProjectWizardBundle.message("project.kind.compose"), message = "uses Kotlin ${Versions.KOTLIN_VERSION_FOR_COMPOSE}") } fun List<Module>.withAllSubModules(includeSourcesets: Boolean = false): List<Module> = buildList { diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt index 5fb3440b05f4..c6f8f3e588ff 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetTy import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle import org.jetbrains.kotlin.tools.projectWizard.core.Reader import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module class ConsoleJvmApplicationTemplate : Template() { @@ -24,7 +25,7 @@ class ConsoleJvmApplicationTemplate : Template() { override val description: String = KotlinNewProjectWizardBundle.message("module.template.console.jvm.description") - override fun isSupportedByModuleType(module: Module): Boolean = + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = module.configurator.moduleType == ModuleType.jvm override fun Writer.getIrsToAddToBuildFile( diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/JsClientTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/JsClientTemplate.kt index a347be9aaa96..c8eea3546005 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/JsClientTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/JsClientTemplate.kt @@ -15,12 +15,13 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatf import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.* import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptor import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.interceptTemplate abstract class JsClientTemplate : Template() { - override fun isSupportedByModuleType(module: Module): Boolean = + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = module.configurator.moduleType == ModuleType.js override fun isApplicableTo( diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt index 30dfbfcc4039..9a302a4c5086 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration import org.jetbrains.kotlin.tools.projectWizard.core.Reader import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version @@ -33,7 +34,7 @@ class KtorServerTemplate : Template() { override val title: String = KotlinNewProjectWizardBundle.message("module.template.ktor.server.title") override val description: String = KotlinNewProjectWizardBundle.message("module.template.ktor.server.description") - override fun isSupportedByModuleType(module: Module): Boolean = + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = module.configurator.moduleType == ModuleType.jvm @NonNls diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt index 68dbfc9ca731..1a79b7b30e8c 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt @@ -17,13 +17,14 @@ import org.jetbrains.kotlin.tools.projectWizard.core.* import org.jetbrains.kotlin.tools.projectWizard.core.safeAs import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.NativeTargetConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module class NativeConsoleApplicationTemplate : Template() { override val title: String = KotlinNewProjectWizardBundle.message("module.template.native.console.title") override val description: String = KotlinNewProjectWizardBundle.message("module.template.native.console.description") - override fun isSupportedByModuleType(module: Module): Boolean = + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = module.configurator.moduleType == ModuleType.native override val id: String = "nativeConsoleApp" diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleNodeJsTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleNodeJsTemplate.kt index 12acda153c48..e06cfc7bd98a 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleNodeJsTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleNodeJsTemplate.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.NodeJsSingle import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository.Companion.JCENTER import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType @@ -28,7 +29,7 @@ class SimpleNodeJsTemplate : Template() { override val description: String = KotlinNewProjectWizardBundle.message("module.template.simple.nodejs.description") - override fun isSupportedByModuleType(module: Module): Boolean = + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = module.configurator.moduleType == ModuleType.js @NonNls diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt index 48582653fb25..d359e09f6d7d 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.RunConfigurationsPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version @@ -72,7 +73,7 @@ abstract class Template : SettingsOwner, EntitiesOwnerDescriptor, DisplayableSet abstract val title: String abstract val description: String - abstract fun isSupportedByModuleType(module: Module): Boolean + abstract fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean override val text: String get() = title diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeAndroidTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeAndroidTemplate.kt index 88dc5409602f..4cd37ffb1e9b 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeAndroidTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeAndroidTemplate.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.inContextOfM import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.pomIR import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage @@ -39,8 +40,8 @@ class ComposeAndroidTemplate : Template() { override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.description") - override fun isSupportedByModuleType(module: Module): Boolean = - module.configurator.moduleType == ModuleType.android + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = + module.configurator.moduleType == ModuleType.android && projectKind == ProjectKind.COMPOSE override fun isApplicableTo(reader: Reader, module: Module): Boolean = module.kind == ModuleKind.singleplatformAndroid @@ -78,7 +79,7 @@ class ComposeAndroidTemplate : Template() { when { descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.activityMainXml || descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.colorsXml - || descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.stylesXml -> null + || descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.stylesXml -> null descriptor?.templateId == "android/MainActivity.kt.vm" -> { template.copy(descriptor = mainActivityKt(module.originalModule.javaPackage(pomIR()))) } diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt index 7a8a7bf83012..fca244ff40e4 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.inContextOfM import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.pomIR import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* @@ -32,8 +33,8 @@ class ComposeJvmDesktopTemplate : Template() { override val title: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.title") override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.description") - override fun isSupportedByModuleType(module: Module): Boolean = - module.configurator.moduleType == ModuleType.jvm + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = + module.configurator.moduleType == ModuleType.jvm && projectKind == ProjectKind.COMPOSE override fun isApplicableTo(reader: Reader, module: Module): Boolean = module.kind == ModuleKind.singleplatformJvm diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeMppModuleTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeMppModuleTemplate.kt index df641a103c5f..66e936c49f51 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeMppModuleTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeMppModuleTemplate.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.* import org.jetbrains.kotlin.tools.projectWizard.mpp.applyMppStructure import org.jetbrains.kotlin.tools.projectWizard.mpp.mppSources import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.pomIR import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository @@ -38,8 +39,8 @@ class ComposeMppModuleTemplate : Template() { override val title: String = KotlinNewProjectWizardBundle.message("module.template.compose.mpp.title") override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.mpp.description") - override fun isSupportedByModuleType(module: Module): Boolean = - module.configurator == MppModuleConfigurator + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = + module.configurator == MppModuleConfigurator && projectKind == ProjectKind.COMPOSE override fun Writer.getIrsToAddToBuildFile(module: ModuleIR): List<BuildSystemIR> = irsList { +GradleImportIR("org.jetbrains.compose.compose") diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt index ac0d5eb8c991..1aa37e26e9c7 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/mpp/MobileMppTemplate.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.MppModuleCon import org.jetbrains.kotlin.tools.projectWizard.mpp.applyMppStructure import org.jetbrains.kotlin.tools.projectWizard.mpp.mppSources import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.pomIR import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module @@ -33,7 +34,7 @@ class MobileMppTemplate : Template() { override val title: String = KotlinNewProjectWizardBundle.message("module.template.mpp.mobile.title") override val description: String = KotlinNewProjectWizardBundle.message("module.template.mpp.mobile.description") - override fun isSupportedByModuleType(module: Module): Boolean = + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = module.configurator == MppModuleConfigurator diff --git a/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaKotlinVersionProviderService.kt b/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaKotlinVersionProviderService.kt index bb08effe4014..99797b2f0a9f 100644 --- a/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaKotlinVersionProviderService.kt +++ b/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaKotlinVersionProviderService.kt @@ -16,12 +16,16 @@ import org.jetbrains.kotlin.tools.projectWizard.core.safe import org.jetbrains.kotlin.tools.projectWizard.core.service.EapVersionDownloader import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar class IdeaKotlinVersionProviderService : KotlinVersionProviderService(), IdeaWizardService { - override fun getKotlinVersion(): WizardKotlinVersion { + override fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion { + if (projectKind == ProjectKind.COMPOSE) { + return kotlinVersionWithDefaultValues(Versions.KOTLIN_VERSION_FOR_COMPOSE) + } val version = getPatchedKotlinVersion() ?: getKotlinVersionFromCompiler() ?: VersionsDownloader.downloadLatestEapOrStableKotlinVersion() diff --git a/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt b/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt index 6c3a8bf717eb..de1a8777ed88 100644 --- a/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt +++ b/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt @@ -3,6 +3,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep import com.intellij.ui.JBColor import com.intellij.ui.ScrollPaneFactory import com.intellij.ui.SeparatorWithText +import com.intellij.ui.SimpleTextAttributes import com.intellij.util.ui.JBUI import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.tools.projectWizard.core.Context @@ -40,6 +41,10 @@ class ProjectTemplateSettingComponent( render = { value -> icon = value.icon append(value.title) + value.projectKind.message?.let { message -> + append(" ") + append(message, SimpleTextAttributes.GRAYED_ATTRIBUTES) + } }, onValueSelected = { value = it } ) diff --git a/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt b/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt index d65f828916d3..4adbe40bfb6d 100644 --- a/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt +++ b/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt @@ -7,11 +7,14 @@ import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.Reader import org.jetbrains.kotlin.tools.projectWizard.core.entity.StringValidators import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingReference +import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.reference import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.CommonTargetConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.getConfiguratorSettings import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module.Companion.ALLOWED_SPECIAL_CHARS_IN_MODULE_NAMES @@ -166,14 +169,14 @@ private class ModuleTemplateComponent( private object NoneTemplate : Template() { override val title = KotlinNewProjectWizardUIBundle.message("module.settings.template.none") override val description: String = "" - override fun isSupportedByModuleType(module: Module): Boolean = true + override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean = true override val id: String = "none" } fun Reader.availableTemplatesFor(module: Module) = TemplatesPlugin.templates.propertyValue.values.filter { template -> - template.isSupportedByModuleType(module) + template.isSupportedByModuleType(module, KotlinPlugin.projectKind.settingValue) } |