From b4163f953f6f8f80832efb7e97fedf650e3c253b Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 7 Sep 2018 11:53:06 +0300 Subject: [PATCH] Add gradle.properties file with new codestyle for new Gradle projects (KT-23400) --- .../GradleKotlinFrameworkSupportProvider.kt | 1 + .../GradlePropertiesFileUtils.kt | 29 +++++++++++++++++++ ...DslGradleKotlinFrameworkSupportProvider.kt | 1 + 3 files changed, 31 insertions(+) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt index d56b04973d8..f711872c573 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinFrameworkSupportProvider.kt @@ -131,6 +131,7 @@ abstract class GradleKotlinFrameworkSupportProvider( if (isInNewProject(module)) { ProjectCodeStyleImporter.apply(module.project, KotlinStyleGuideCodeStyle.INSTANCE) + GradlePropertiesFileUtils.addCodeStyleProperty(module.project, KotlinStyleGuideCodeStyle.CODE_STYLE_SETTING) } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradlePropertiesFileUtils.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradlePropertiesFileUtils.kt index 43ffb126f95..4a808035ca2 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradlePropertiesFileUtils.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/GradlePropertiesFileUtils.kt @@ -5,7 +5,9 @@ package org.jetbrains.kotlin.idea.configuration +import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.project.Project +import java.io.File import java.util.* internal object GradlePropertiesFileUtils { @@ -28,4 +30,31 @@ internal object GradlePropertiesFileUtils { return null } + + fun addCodeStyleProperty(project: Project, value: String) { + addProperty(project, KOTLIN_CODE_STYLE_GRADLE_SETTING, value) + } + + private fun addProperty(project: Project, key: String, value: String) { + val propertiesFile = projectPropertiesFile(project) + + val keyValue = "$key=$value" + + val updatedText = if (propertiesFile.exists()) { + propertiesFile.readText() + System.lineSeparator() + keyValue + } else { + keyValue + } + + propertiesFile.writeText(updatedText) + } + + private fun projectPropertiesFile(project: Project): File { + return File(getBaseDirPath(project), "gradle.properties") + } + + private fun getBaseDirPath(project: Project): File { + val basePath = project.basePath!! + return File(ExternalSystemApiUtil.toCanonicalPath(basePath)) + } } \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt index c56b45ae076..7f344c7afdc 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt @@ -101,6 +101,7 @@ abstract class KotlinDslGradleKotlinFrameworkSupportProvider( if (isInNewProject(module)) { ProjectCodeStyleImporter.apply(module.project, KotlinStyleGuideCodeStyle.INSTANCE) + GradlePropertiesFileUtils.addCodeStyleProperty(module.project, KotlinStyleGuideCodeStyle.CODE_STYLE_SETTING) } }