From 21ae6e272d292d7d15bdaa84c112f61a0f61ec2c Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Thu, 17 Jan 2019 09:19:26 +0300 Subject: [PATCH] Build utils: Kotlin DSL for idea-ext plugin --- buildSrc/src/main/kotlin/ideaExtKotlinDsl.kt | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 buildSrc/src/main/kotlin/ideaExtKotlinDsl.kt diff --git a/buildSrc/src/main/kotlin/ideaExtKotlinDsl.kt b/buildSrc/src/main/kotlin/ideaExtKotlinDsl.kt new file mode 100644 index 00000000000..3cae391f4c0 --- /dev/null +++ b/buildSrc/src/main/kotlin/ideaExtKotlinDsl.kt @@ -0,0 +1,29 @@ +import org.gradle.api.plugins.ExtensionAware +import org.gradle.kotlin.dsl.configure + +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +fun org.gradle.plugins.ide.idea.model.IdeaProject.settings(block: org.jetbrains.gradle.ext.ProjectSettings.() -> Unit) = + (this@settings as ExtensionAware).extensions.configure(block) + +fun org.jetbrains.gradle.ext.ProjectSettings.compiler(block: org.jetbrains.gradle.ext.IdeaCompilerConfiguration.() -> Unit) = + (this@compiler as ExtensionAware).extensions.configure(block) + +fun org.jetbrains.gradle.ext.ProjectSettings.delegateActions(block: org.jetbrains.gradle.ext.ActionDelegationConfig.() -> Unit) = + (this@delegateActions as ExtensionAware).extensions.configure(block) + +fun org.jetbrains.gradle.ext.ProjectSettings.runConfigurations(block: org.jetbrains.gradle.ext.DefaultRunConfigurationContainer.() -> Unit) = + (this@runConfigurations as ExtensionAware).extensions.configure(block) + +inline fun org.jetbrains.gradle.ext.DefaultRunConfigurationContainer.defaults(noinline block: T.() -> Unit) = + defaults(T::class.java, block) + +fun org.jetbrains.gradle.ext.DefaultRunConfigurationContainer.junit(name: String, block: org.jetbrains.gradle.ext.JUnit.() -> Unit) = + create(name, org.jetbrains.gradle.ext.JUnit::class.java, block) + +fun org.jetbrains.gradle.ext.DefaultRunConfigurationContainer.application(name: String, block: org.jetbrains.gradle.ext.Application.() -> Unit) = + create(name, org.jetbrains.gradle.ext.Application::class.java, block) +