IDE, wizards: update Gradle Kotlin/JS support
Split Kotlin/JS configuration for browser and nodejs. Add corresponding Kotlin/JS sub targets DSL calling.
This commit is contained in:
+38
-8
@@ -100,7 +100,7 @@ abstract class GradleKotlinFrameworkSupportProvider(
|
||||
}
|
||||
|
||||
buildScriptData.addPluginDefinitionInPluginsGroup(
|
||||
getPluginExpression() + if (specifyPluginVersionIfNeeded) " version '$kotlinVersion'" else ""
|
||||
getPluginExpression() + if (specifyPluginVersionIfNeeded) " version '$kotlinVersion'" else ""
|
||||
)
|
||||
} else {
|
||||
if (additionalRepository != null) {
|
||||
@@ -147,7 +147,7 @@ abstract class GradleKotlinFrameworkSupportProvider(
|
||||
KotlinFUSLogger.log(FUSEventGroups.NPWizards, this.javaClass.simpleName)
|
||||
}
|
||||
|
||||
protected open fun updateSettingsScript(settingsBuilder: SettingsScriptBuilder, specifyPluginVersionIfNeeded: Boolean) { }
|
||||
protected open fun updateSettingsScript(settingsBuilder: SettingsScriptBuilder, specifyPluginVersionIfNeeded: Boolean) {}
|
||||
|
||||
protected abstract fun getDependencies(sdk: Sdk?): List<String>
|
||||
protected open fun getTestDependencies(): List<String> = listOf()
|
||||
@@ -187,21 +187,51 @@ open class GradleKotlinJavaFrameworkSupportProvider(
|
||||
override fun getDescription() = "A Kotlin library or application targeting the JVM"
|
||||
}
|
||||
|
||||
open class GradleKotlinJSFrameworkSupportProvider(
|
||||
frameworkTypeId: String = "KOTLIN_JS",
|
||||
displayName: String = "Kotlin/JS"
|
||||
abstract class GradleKotlinJSFrameworkSupportProvider(
|
||||
frameworkTypeId: String,
|
||||
displayName: String
|
||||
) : GradleKotlinFrameworkSupportProvider(frameworkTypeId, displayName, KotlinIcons.JS) {
|
||||
abstract val jsSubTargetName: String
|
||||
|
||||
override fun addSupport(
|
||||
buildScriptData: BuildScriptDataBuilder,
|
||||
module: Module,
|
||||
sdk: Sdk?,
|
||||
specifyPluginVersionIfNeeded: Boolean,
|
||||
explicitPluginVersion: String?
|
||||
) {
|
||||
super.addSupport(buildScriptData, module, sdk, specifyPluginVersionIfNeeded, explicitPluginVersion)
|
||||
|
||||
buildScriptData.addOther("kotlin.target.$jsSubTargetName { }")
|
||||
}
|
||||
|
||||
override fun getPluginId() = KotlinJsGradleModuleConfigurator.KOTLIN_JS
|
||||
override fun getPluginExpression() = "id 'org.jetbrains.kotlin.js'"
|
||||
|
||||
override fun getDependencies(sdk: Sdk?) = listOf(MAVEN_JS_STDLIB_ID)
|
||||
|
||||
override fun getTestDependencies() = listOf(MAVEN_JS_TEST_ID)
|
||||
|
||||
override fun getDescription() = "A Kotlin library or application targeting JavaScript"
|
||||
}
|
||||
|
||||
open class GradleKotlinJSBrowserFrameworkSupportProvider(
|
||||
frameworkTypeId: String = "KOTLIN_JS_BROWSER",
|
||||
displayName: String = "Kotlin/JS for browser"
|
||||
) : GradleKotlinJSFrameworkSupportProvider(frameworkTypeId, displayName) {
|
||||
override val jsSubTargetName: String
|
||||
get() = "browser"
|
||||
|
||||
override fun getDescription() = "A Kotlin library or application targeting JavaScript for browser"
|
||||
}
|
||||
|
||||
open class GradleKotlinJSNodeFrameworkSupportProvider(
|
||||
frameworkTypeId: String = "KOTLIN_JS_NODE",
|
||||
displayName: String = "Kotlin/JS for Node.js"
|
||||
) : GradleKotlinJSFrameworkSupportProvider(frameworkTypeId, displayName) {
|
||||
override val jsSubTargetName: String
|
||||
get() = "nodejs"
|
||||
|
||||
override fun getDescription() = "A Kotlin library or application targeting JavaScript for Node.js"
|
||||
}
|
||||
|
||||
class GradleKotlinMPPFrameworkSupportProvider : GradleKotlinFrameworkSupportProvider(
|
||||
"KOTLIN_MPP", "Kotlin (Multiplatform - Experimental)", KotlinIcons.MPP
|
||||
) {
|
||||
|
||||
+29
-2
@@ -144,8 +144,23 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinDslGradleKotlinJSFrameworkSupportProvider :
|
||||
KotlinDslGradleKotlinFrameworkSupportProvider("KOTLIN_JS", "Kotlin/JS", KotlinIcons.JS) {
|
||||
abstract class AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider(
|
||||
frameworkTypeId: String,
|
||||
displayName: String
|
||||
) : KotlinDslGradleKotlinFrameworkSupportProvider(frameworkTypeId, displayName, KotlinIcons.JS) {
|
||||
abstract val jsSubTargetName: String
|
||||
|
||||
override fun addSupport(
|
||||
projectId: ProjectId,
|
||||
module: Module,
|
||||
rootModel: ModifiableRootModel,
|
||||
modifiableModelsProvider: ModifiableModelsProvider,
|
||||
buildScriptData: BuildScriptDataBuilder
|
||||
) {
|
||||
super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData)
|
||||
|
||||
buildScriptData.addOther("kotlin.target.$jsSubTargetName { }")
|
||||
}
|
||||
|
||||
override fun getOldSyntaxPluginDefinition(): String = "plugin(\"${KotlinJsGradleModuleConfigurator.KOTLIN_JS}\")"
|
||||
override fun getPluginDefinition(): String = "id(\"org.jetbrains.kotlin.js\")"
|
||||
@@ -153,3 +168,15 @@ class KotlinDslGradleKotlinJSFrameworkSupportProvider :
|
||||
override fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) =
|
||||
"implementation(${getKotlinModuleDependencySnippet(MAVEN_JS_STDLIB_ID.removePrefix("kotlin-"), version)})"
|
||||
}
|
||||
|
||||
class KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider :
|
||||
AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider("KOTLIN_JS_BROWSER", "Kotlin/JS for browser") {
|
||||
override val jsSubTargetName: String
|
||||
get() = "browser"
|
||||
}
|
||||
|
||||
class KotlinDslGradleKotlinJSNodeFrameworkSupportProvider :
|
||||
AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider("KOTLIN_JS_NODE", "Kotlin/JS for Node.js") {
|
||||
override val jsSubTargetName: String
|
||||
get() = "Node.js"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<pluginDescriptions implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradlePluginDescription"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradleProjectResolverExtension" order="first"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.kapt.idea.KaptProjectResolverExtension" order="last"/>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<pluginDescriptions implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradlePluginDescription"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradleProjectResolverExtension" order="first"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.kapt.idea.KaptProjectResolverExtension" order="last"/>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<pluginDescriptions implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradlePluginDescription"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradleProjectResolverExtension" order="first"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.kapt.idea.KaptProjectResolverExtension" order="last"/>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<frameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.GradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJavaFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider"/>
|
||||
<kotlinDslFrameworkSupport implementation="org.jetbrains.kotlin.idea.configuration.KotlinDslGradleKotlinJSNodeFrameworkSupportProvider"/>
|
||||
<pluginDescriptions implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradlePluginDescription"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradleProjectResolverExtension" order="first"/>
|
||||
<projectResolve implementation="org.jetbrains.kotlin.kapt.idea.KaptProjectResolverExtension" order="last"/>
|
||||
|
||||
Reference in New Issue
Block a user