Wizard: use different Kotlin version for compose templates
This commit is contained in:
+2
-1
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
+2
@@ -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")
|
||||
|
||||
+3
-2
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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 {
|
||||
|
||||
+2
-1
@@ -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(
|
||||
|
||||
+2
-1
@@ -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(
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
+2
-1
@@ -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"
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
|
||||
+4
-3
@@ -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())))
|
||||
}
|
||||
|
||||
+3
-2
@@ -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
|
||||
|
||||
+3
-2
@@ -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")
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user