Make JPS-based wizards available only for new_module use case
This commit is contained in:
@@ -105,8 +105,8 @@ create.kotlin.javascript.library=Create Kotlin JavaScript Library
|
|||||||
javascript.library.creation=JavaScript Library Creation
|
javascript.library.creation=JavaScript Library Creation
|
||||||
java.runtime.library.creation=Java Runtime Library Creation
|
java.runtime.library.creation=Java Runtime Library Creation
|
||||||
presentable.type.js.files=JS files
|
presentable.type.js.files=JS files
|
||||||
kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system=Kotlin project with a JavaScript target based on the IntelliJ IDEA build system
|
kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system=Kotlin module with a JavaScript target based on the IntelliJ IDEA build system
|
||||||
kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system=Kotlin project with a JVM target based on the IntelliJ IDEA build system
|
kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system=Kotlin module with a JVM target based on the IntelliJ IDEA build system
|
||||||
command.action.add.injection.comment=Add injection comment
|
command.action.add.injection.comment=Add injection comment
|
||||||
command.action.add.injection.annotation=Add injection annotation
|
command.action.add.injection.annotation=Add injection annotation
|
||||||
command.action.remove.injection.in.code.instructions=remove injection in-code instructions
|
command.action.remove.injection.in.code.instructions=remove injection in-code instructions
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.intellij.ide.util.projectWizard.ModuleBuilder
|
|||||||
import com.intellij.ide.util.projectWizard.WizardContext
|
import com.intellij.ide.util.projectWizard.WizardContext
|
||||||
import com.intellij.openapi.extensions.ExtensionPointName
|
import com.intellij.openapi.extensions.ExtensionPointName
|
||||||
import com.intellij.openapi.extensions.Extensions
|
import com.intellij.openapi.extensions.Extensions
|
||||||
|
import com.intellij.openapi.roots.ui.configuration.actions.NewModuleAction
|
||||||
import com.intellij.platform.ProjectTemplate
|
import com.intellij.platform.ProjectTemplate
|
||||||
import com.intellij.platform.ProjectTemplatesFactory
|
import com.intellij.platform.ProjectTemplatesFactory
|
||||||
import com.intellij.platform.templates.BuilderBasedTemplate
|
import com.intellij.platform.templates.BuilderBasedTemplate
|
||||||
@@ -31,30 +32,40 @@ class KotlinTemplatesFactory : ProjectTemplatesFactory() {
|
|||||||
override fun getGroupWeight(group: String?): Int = 1
|
override fun getGroupWeight(group: String?): Int = 1
|
||||||
|
|
||||||
override fun createTemplates(group: String?, context: WizardContext?): Array<out ProjectTemplate> {
|
override fun createTemplates(group: String?, context: WizardContext?): Array<out ProjectTemplate> {
|
||||||
val result = mutableListOf<ProjectTemplate>(
|
val result = mutableListOf<ProjectTemplate>()
|
||||||
BuilderBasedTemplate(
|
if (isNewModuleAction()) {
|
||||||
KotlinModuleBuilder(
|
result.add(
|
||||||
JvmPlatforms.unspecifiedJvmPlatform,
|
BuilderBasedTemplate(
|
||||||
"JVM | IDEA",
|
KotlinModuleBuilder(
|
||||||
KotlinJvmBundle.message("presentable.name.jvm.idea"),
|
JvmPlatforms.unspecifiedJvmPlatform,
|
||||||
KotlinJvmBundle.message("kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system"),
|
"JVM | IDEA",
|
||||||
KotlinIcons.SMALL_LOGO
|
KotlinJvmBundle.message("presentable.name.jvm.idea"),
|
||||||
)
|
KotlinJvmBundle.message("kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system"),
|
||||||
),
|
KotlinIcons.SMALL_LOGO
|
||||||
|
)
|
||||||
BuilderBasedTemplate(
|
|
||||||
KotlinModuleBuilder(
|
|
||||||
JsPlatforms.defaultJsPlatform,
|
|
||||||
"JS | IDEA",
|
|
||||||
KotlinJvmBundle.message("presentable.name.js.idea"),
|
|
||||||
KotlinJvmBundle.message("kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system"),
|
|
||||||
KotlinIcons.JS
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
result.add(
|
||||||
|
BuilderBasedTemplate(
|
||||||
|
KotlinModuleBuilder(
|
||||||
|
JsPlatforms.defaultJsPlatform,
|
||||||
|
"JS | IDEA",
|
||||||
|
KotlinJvmBundle.message("presentable.name.js.idea"),
|
||||||
|
KotlinJvmBundle.message("kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system"),
|
||||||
|
KotlinIcons.JS
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
result.addAll(Extensions.getExtensions(EP_NAME).map { BuilderBasedTemplate(it) })
|
result.addAll(Extensions.getExtensions(EP_NAME).map { BuilderBasedTemplate(it) })
|
||||||
return result.toTypedArray()
|
return result.toTypedArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun isNewModuleAction(): Boolean {
|
||||||
|
return Thread.currentThread().stackTrace.any { element ->
|
||||||
|
element.className == NewModuleAction::class.java.name
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user