From e911a1e53d5d0643e618fcd71ba8a74b7863e002 Mon Sep 17 00:00:00 2001 From: Paul Merlin Date: Tue, 10 Oct 2017 17:14:53 +0200 Subject: [PATCH] Script template provider for settings.gradle.kts files This commit introduces GradleSettingsKotlinDSLTemplateProvider and registers it as Kotlin IntelliJ plugin extension. --- .../core/script/GradleScriptTemplateProvider.kt | 17 ++++++++++++----- idea/src/META-INF/gradle.xml | 3 +++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt index f3bd6f7e05a..716159dd8f2 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt @@ -88,19 +88,26 @@ abstract class AbstractGradleScriptTemplatesProvider( } } -class GradleKotlinDSLTemplateProvider(project: Project) : AbstractGradleScriptTemplatesProvider( +abstract class AbstractGradleKotlinDSLTemplateProvider(project: Project, private val templateClass: String) + : AbstractGradleScriptTemplatesProvider( project, "Gradle Kotlin DSL", - "org.gradle.kotlin.dsl.KotlinBuildScript", + templateClass, Regex("^gradle-(?:kotlin-dsl|core).*\\.jar\$") ) { // TODO_R: check this against kotlin-dsl branch that uses daemon override val additionalResolverClasspath: List get() = - // additionally need compiler jar to load gradle resolver - gradleLibDir.listFiles { file -> file.name.startsWith("kotlin-compiler-embeddable") } - .firstOrNull()?.let(::listOf).orEmpty() + // additionally need compiler jar to load gradle resolver + gradleLibDir.listFiles { file -> file.name.startsWith("kotlin-compiler-embeddable") } + .firstOrNull()?.let(::listOf).orEmpty() } +class GradleSettingsKotlinDSLTemplateProvider(project: Project) + : AbstractGradleKotlinDSLTemplateProvider(project, "org.gradle.kotlin.dsl.KotlinSettingsScript") + +class GradleKotlinDSLTemplateProvider(project: Project) + : AbstractGradleKotlinDSLTemplateProvider(project, "org.gradle.kotlin.dsl.KotlinBuildScript") + class LegacyGradleScriptKotlinTemplateProvider(project: Project) : AbstractGradleScriptTemplatesProvider( project, "Gradle Script Kotlin", diff --git a/idea/src/META-INF/gradle.xml b/idea/src/META-INF/gradle.xml index efff1b2c218..9e4672a0988 100644 --- a/idea/src/META-INF/gradle.xml +++ b/idea/src/META-INF/gradle.xml @@ -54,6 +54,9 @@ + +