Wizard: use different Kotlin version for compose templates
This commit is contained in:
+5
-1
@@ -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.EapVersionDownloader
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService
|
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.settings.version.Version
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar
|
||||||
|
|
||||||
class IdeaKotlinVersionProviderService : KotlinVersionProviderService(), IdeaWizardService {
|
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()
|
val version = getPatchedKotlinVersion()
|
||||||
?: getKotlinVersionFromCompiler()
|
?: getKotlinVersionFromCompiler()
|
||||||
?: VersionsDownloader.downloadLatestEapOrStableKotlinVersion()
|
?: VersionsDownloader.downloadLatestEapOrStableKotlinVersion()
|
||||||
|
|||||||
+5
@@ -3,6 +3,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep
|
|||||||
import com.intellij.ui.JBColor
|
import com.intellij.ui.JBColor
|
||||||
import com.intellij.ui.ScrollPaneFactory
|
import com.intellij.ui.ScrollPaneFactory
|
||||||
import com.intellij.ui.SeparatorWithText
|
import com.intellij.ui.SeparatorWithText
|
||||||
|
import com.intellij.ui.SimpleTextAttributes
|
||||||
import com.intellij.util.ui.JBUI
|
import com.intellij.util.ui.JBUI
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.Context
|
import org.jetbrains.kotlin.tools.projectWizard.core.Context
|
||||||
@@ -40,6 +41,10 @@ class ProjectTemplateSettingComponent(
|
|||||||
render = { value ->
|
render = { value ->
|
||||||
icon = value.icon
|
icon = value.icon
|
||||||
append(value.title)
|
append(value.title)
|
||||||
|
value.projectKind.message?.let { message ->
|
||||||
|
append(" ")
|
||||||
|
append(message, SimpleTextAttributes.GRAYED_ATTRIBUTES)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onValueSelected = { value = it }
|
onValueSelected = { value = it }
|
||||||
)
|
)
|
||||||
|
|||||||
+5
-2
@@ -6,11 +6,14 @@ import org.jetbrains.kotlin.tools.projectWizard.core.Context
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
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.StringValidators
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingReference
|
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.CommonTargetConfigurator
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.getConfiguratorSettings
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.getConfiguratorSettings
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
|
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.KotlinPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
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.plugins.templates.TemplatesPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
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
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module.Companion.ALLOWED_SPECIAL_CHARS_IN_MODULE_NAMES
|
||||||
@@ -165,14 +168,14 @@ private class ModuleTemplateComponent(
|
|||||||
private object NoneTemplate : Template() {
|
private object NoneTemplate : Template() {
|
||||||
override val title = KotlinNewProjectWizardUIBundle.message("module.settings.template.none")
|
override val title = KotlinNewProjectWizardUIBundle.message("module.settings.template.none")
|
||||||
override val description: String = ""
|
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"
|
override val id: String = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Reader.availableTemplatesFor(module: Module) =
|
fun Reader.availableTemplatesFor(module: Module) =
|
||||||
TemplatesPlugin.templates.propertyValue.values.filter { template ->
|
TemplatesPlugin.templates.propertyValue.values.filter { template ->
|
||||||
template.isSupportedByModuleType(module)
|
template.isSupportedByModuleType(module, KotlinPlugin.projectKind.settingValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+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.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionKind
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionKind
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService
|
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.BintrayRepository
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository
|
||||||
@@ -18,7 +19,7 @@ class KotlinVersionProviderTestWizardService() : KotlinVersionProviderService(),
|
|||||||
get() = System.getProperty("cacheRedirectorEnabled")?.toBoolean() == true
|
get() = System.getProperty("cacheRedirectorEnabled")?.toBoolean() == true
|
||||||
|
|
||||||
|
|
||||||
override fun getKotlinVersion(): WizardKotlinVersion =
|
override fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion =
|
||||||
kotlinVersionWithDefaultValues(TEST_KOTLIN_VERSION)
|
kotlinVersionWithDefaultValues(TEST_KOTLIN_VERSION)
|
||||||
|
|
||||||
override fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = if (useCacheRedirector) {
|
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.kotlin.js=Kotlin/JS
|
||||||
project.kind.multiplatform=Multiplatform
|
project.kind.multiplatform=Multiplatform
|
||||||
project.kind.singleplatform=JVM
|
project.kind.singleplatform=JVM
|
||||||
project.kind.compose=JetBrains Compose
|
project.kind.compose=JetBrains Compose (Experimental)
|
||||||
|
|
||||||
project=Project
|
project=Project
|
||||||
|
|
||||||
|
|||||||
+2
@@ -16,6 +16,8 @@ object Versions {
|
|||||||
val JUNIT5 = version("5.6.0")
|
val JUNIT5 = version("5.6.0")
|
||||||
val JETBRAINS_COMPOSE = version("0.1.0-build63")
|
val JETBRAINS_COMPOSE = version("0.1.0-build63")
|
||||||
|
|
||||||
|
val KOTLIN_VERSION_FOR_COMPOSE = version("1.4.0")
|
||||||
|
|
||||||
object ANDROID {
|
object ANDROID {
|
||||||
val ANDROID_MATERIAL = version("1.2.1")
|
val ANDROID_MATERIAL = version("1.2.1")
|
||||||
val ANDROIDX_APPCOMPAT = version("1.2.0")
|
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.asNullable
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.compute
|
import org.jetbrains.kotlin.tools.projectWizard.core.compute
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.safe
|
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.DefaultRepository
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository
|
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)
|
data class WizardKotlinVersion(val version: Version, val kind: KotlinVersionKind, val repository: Repository)
|
||||||
|
|
||||||
abstract class KotlinVersionProviderService : WizardService {
|
abstract class KotlinVersionProviderService : WizardService {
|
||||||
abstract fun getKotlinVersion(): WizardKotlinVersion
|
abstract fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion
|
||||||
|
|
||||||
protected fun kotlinVersionWithDefaultValues(version: Version) = WizardKotlinVersion(
|
protected fun kotlinVersionWithDefaultValues(version: Version) = WizardKotlinVersion(
|
||||||
version,
|
version,
|
||||||
@@ -52,7 +53,7 @@ abstract class KotlinVersionProviderService : WizardService {
|
|||||||
|
|
||||||
|
|
||||||
class KotlinVersionProviderServiceImpl : KotlinVersionProviderService(), IdeaIndependentWizardService {
|
class KotlinVersionProviderServiceImpl : KotlinVersionProviderService(), IdeaIndependentWizardService {
|
||||||
override fun getKotlinVersion(): WizardKotlinVersion =
|
override fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion =
|
||||||
kotlinVersionWithDefaultValues(Versions.KOTLIN)
|
kotlinVersionWithDefaultValues(Versions.KOTLIN)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -62,7 +62,7 @@ class KotlinPlugin(context: Context) : Plugin(context) {
|
|||||||
title = KotlinNewProjectWizardBundle.message("plugin.kotlin.downloading.kotlin.versions")
|
title = KotlinNewProjectWizardBundle.message("plugin.kotlin.downloading.kotlin.versions")
|
||||||
|
|
||||||
withAction {
|
withAction {
|
||||||
val version = service<KotlinVersionProviderService>().getKotlinVersion()
|
val version = service<KotlinVersionProviderService>().getKotlinVersion(projectKind.settingValue)
|
||||||
KotlinPlugin.version.update { version.asSuccess() }
|
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")),
|
Singleplatform(KotlinNewProjectWizardBundle.message("project.kind.singleplatform")),
|
||||||
Multiplatform(KotlinNewProjectWizardBundle.message("project.kind.multiplatform")),
|
Multiplatform(KotlinNewProjectWizardBundle.message("project.kind.multiplatform")),
|
||||||
Android(KotlinNewProjectWizardBundle.message("project.kind.android")),
|
Android(KotlinNewProjectWizardBundle.message("project.kind.android")),
|
||||||
Js(KotlinNewProjectWizardBundle.message("project.kind.kotlin.js")),
|
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 {
|
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.KotlinNewProjectWizardBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
|
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
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
|
|
||||||
class ConsoleJvmApplicationTemplate : Template() {
|
class ConsoleJvmApplicationTemplate : Template() {
|
||||||
@@ -24,7 +25,7 @@ class ConsoleJvmApplicationTemplate : Template() {
|
|||||||
override val description: String = KotlinNewProjectWizardBundle.message("module.template.console.jvm.description")
|
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
|
module.configurator.moduleType == ModuleType.jvm
|
||||||
|
|
||||||
override fun Writer.getIrsToAddToBuildFile(
|
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.moduleConfigurators.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType
|
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.ModuleType
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
|
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.TemplateInterceptor
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.interceptTemplate
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.interceptTemplate
|
||||||
|
|
||||||
abstract class JsClientTemplate : Template() {
|
abstract class JsClientTemplate : Template() {
|
||||||
override fun isSupportedByModuleType(module: Module): Boolean =
|
override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean =
|
||||||
module.configurator.moduleType == ModuleType.js
|
module.configurator.moduleType == ModuleType.js
|
||||||
|
|
||||||
override fun isApplicableTo(
|
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.core.Reader
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
|
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.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.buildsystem.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
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 title: String = KotlinNewProjectWizardBundle.message("module.template.ktor.server.title")
|
||||||
override val description: String = KotlinNewProjectWizardBundle.message("module.template.ktor.server.description")
|
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
|
module.configurator.moduleType == ModuleType.jvm
|
||||||
|
|
||||||
@NonNls
|
@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.core.safeAs
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.NativeTargetConfigurator
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.NativeTargetConfigurator
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
|
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
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
|
|
||||||
class NativeConsoleApplicationTemplate : Template() {
|
class NativeConsoleApplicationTemplate : Template() {
|
||||||
override val title: String = KotlinNewProjectWizardBundle.message("module.template.native.console.title")
|
override val title: String = KotlinNewProjectWizardBundle.message("module.template.native.console.title")
|
||||||
override val description: String = KotlinNewProjectWizardBundle.message("module.template.native.console.description")
|
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
|
module.configurator.moduleType == ModuleType.native
|
||||||
|
|
||||||
override val id: String = "nativeConsoleApp"
|
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.moduleConfigurators.moduleType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
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.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.DefaultRepository.Companion.JCENTER
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType
|
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 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
|
module.configurator.moduleType == ModuleType.js
|
||||||
|
|
||||||
@NonNls
|
@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.StructurePlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
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.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.DisplayableSettingItem
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
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 title: String
|
||||||
abstract val description: 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
|
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.moduleConfigurators.moduleType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin
|
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.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.pomIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage
|
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 val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.description")
|
||||||
|
|
||||||
|
|
||||||
override fun isSupportedByModuleType(module: Module): Boolean =
|
override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean =
|
||||||
module.configurator.moduleType == ModuleType.android
|
module.configurator.moduleType == ModuleType.android && projectKind == ProjectKind.COMPOSE
|
||||||
|
|
||||||
override fun isApplicableTo(reader: Reader, module: Module): Boolean =
|
override fun isApplicableTo(reader: Reader, module: Module): Boolean =
|
||||||
module.kind == ModuleKind.singleplatformAndroid
|
module.kind == ModuleKind.singleplatformAndroid
|
||||||
@@ -78,7 +79,7 @@ class ComposeAndroidTemplate : Template() {
|
|||||||
when {
|
when {
|
||||||
descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.activityMainXml
|
descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.activityMainXml
|
||||||
|| descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.colorsXml
|
|| descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.colorsXml
|
||||||
|| descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.stylesXml -> null
|
|| descriptor == AndroidModuleConfigurator.FileTemplateDescriptors.stylesXml -> null
|
||||||
descriptor?.templateId == "android/MainActivity.kt.vm" -> {
|
descriptor?.templateId == "android/MainActivity.kt.vm" -> {
|
||||||
template.copy(descriptor = mainActivityKt(module.originalModule.javaPackage(pomIR())))
|
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.moduleConfigurators.moduleType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin
|
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.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.pomIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage
|
import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
|
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 title: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.title")
|
||||||
override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.description")
|
override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.description")
|
||||||
|
|
||||||
override fun isSupportedByModuleType(module: Module): Boolean =
|
override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean =
|
||||||
module.configurator.moduleType == ModuleType.jvm
|
module.configurator.moduleType == ModuleType.jvm && projectKind == ProjectKind.COMPOSE
|
||||||
|
|
||||||
override fun isApplicableTo(reader: Reader, module: Module): Boolean =
|
override fun isApplicableTo(reader: Reader, module: Module): Boolean =
|
||||||
module.kind == ModuleKind.singleplatformJvm
|
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.applyMppStructure
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.mpp.mppSources
|
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.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.pomIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
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 title: String = KotlinNewProjectWizardBundle.message("module.template.compose.mpp.title")
|
||||||
override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.mpp.description")
|
override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.mpp.description")
|
||||||
|
|
||||||
override fun isSupportedByModuleType(module: Module): Boolean =
|
override fun isSupportedByModuleType(module: Module, projectKind: ProjectKind): Boolean =
|
||||||
module.configurator == MppModuleConfigurator
|
module.configurator == MppModuleConfigurator && projectKind == ProjectKind.COMPOSE
|
||||||
|
|
||||||
override fun Writer.getIrsToAddToBuildFile(module: ModuleIR): List<BuildSystemIR> = irsList {
|
override fun Writer.getIrsToAddToBuildFile(module: ModuleIR): List<BuildSystemIR> = irsList {
|
||||||
+GradleImportIR("org.jetbrains.compose.compose")
|
+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.applyMppStructure
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.mpp.mppSources
|
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.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.pomIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
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 title: String = KotlinNewProjectWizardBundle.message("module.template.mpp.mobile.title")
|
||||||
override val description: String = KotlinNewProjectWizardBundle.message("module.template.mpp.mobile.description")
|
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
|
module.configurator == MppModuleConfigurator
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user