Apply Kotlin official code style for projects created from wizards (KT-23400)
- Kotlin templates - New Java projects with Kotlin support - Gradle projects with Kotlin support - Gradle projects with Kotlin DSL
This commit is contained in:
+7
@@ -26,6 +26,9 @@ import com.intellij.openapi.roots.ModifiableModelsProvider
|
||||
import com.intellij.openapi.roots.ModifiableRootModel
|
||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||
import org.jetbrains.kotlin.idea.core.platform.impl.CommonIdePlatformKindTooling.MAVEN_COMMON_STDLIB_ID
|
||||
import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle
|
||||
import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter
|
||||
import org.jetbrains.kotlin.idea.framework.isInNewProject
|
||||
import org.jetbrains.kotlin.idea.versions.*
|
||||
import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder
|
||||
import org.jetbrains.plugins.gradle.frameworkSupport.GradleFrameworkSupportProvider
|
||||
@@ -125,6 +128,10 @@ abstract class GradleKotlinFrameworkSupportProvider(
|
||||
} else {
|
||||
buildScriptData.addBuildscriptDependencyNotation(KotlinWithGradleConfigurator.CLASSPATH)
|
||||
}
|
||||
|
||||
if (isInNewProject(module)) {
|
||||
ProjectCodeStyleImporter.apply(module.project, KotlinStyleGuideCodeStyle.INSTANCE)
|
||||
}
|
||||
}
|
||||
|
||||
protected open fun updateSettingsScript(settingsBuilder: SettingsScriptBuilder, specifyPluginVersionIfNeeded: Boolean) { }
|
||||
|
||||
+7
@@ -27,6 +27,9 @@ import org.jetbrains.kotlin.idea.KotlinIcons
|
||||
import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.GSK_KOTLIN_VERSION_PROPERTY_NAME
|
||||
import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.getKotlinGradlePluginClassPathSnippet
|
||||
import org.jetbrains.kotlin.idea.configuration.KotlinBuildScriptManipulator.Companion.getKotlinModuleDependencySnippet
|
||||
import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle
|
||||
import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter
|
||||
import org.jetbrains.kotlin.idea.framework.isInNewProject
|
||||
import org.jetbrains.kotlin.idea.versions.*
|
||||
import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder
|
||||
import org.jetbrains.plugins.gradle.frameworkSupport.KotlinDslGradleFrameworkSupportProvider
|
||||
@@ -95,6 +98,10 @@ abstract class KotlinDslGradleKotlinFrameworkSupportProvider(
|
||||
}
|
||||
|
||||
buildScriptData.addRepositoriesDefinition("mavenCentral()")
|
||||
|
||||
if (isInNewProject(module)) {
|
||||
ProjectCodeStyleImporter.apply(module.project, KotlinStyleGuideCodeStyle.INSTANCE)
|
||||
}
|
||||
}
|
||||
|
||||
private fun RepositoryDescription.toKotlinRepositorySnippet() = "maven { setUrl(\"$url\") }"
|
||||
|
||||
@@ -18,6 +18,8 @@ import com.intellij.openapi.roots.ui.configuration.FacetsProvider
|
||||
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription
|
||||
import org.jetbrains.kotlin.idea.configuration.BuildSystemType
|
||||
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
||||
import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle
|
||||
import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter
|
||||
import javax.swing.JComponent
|
||||
|
||||
class JavaFrameworkSupportProvider : FrameworkSupportInModuleProvider() {
|
||||
@@ -46,6 +48,10 @@ class JavaFrameworkSupportProvider : FrameworkSupportInModuleProvider() {
|
||||
"Kotlin/\u200BJS")
|
||||
|
||||
description!!.finishLibConfiguration(module, rootModel, false)
|
||||
|
||||
if (isInNewProject(module)) {
|
||||
ProjectCodeStyleImporter.apply(module.project, KotlinStyleGuideCodeStyle.INSTANCE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFrameworkSelectionChanged(selected: Boolean) {
|
||||
|
||||
@@ -20,7 +20,10 @@ import com.intellij.CommonBundle;
|
||||
import com.intellij.facet.impl.ui.libraries.LibraryCompositionSettings;
|
||||
import com.intellij.facet.impl.ui.libraries.LibraryOptionsPanel;
|
||||
import com.intellij.framework.library.FrameworkLibraryVersionFilter;
|
||||
import com.intellij.ide.util.projectWizard.*;
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
|
||||
import com.intellij.ide.util.projectWizard.SettingsStep;
|
||||
import com.intellij.ide.util.projectWizard.WizardContext;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.JavaModuleType;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -41,6 +44,8 @@ import kotlin.collections.ArraysKt;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle;
|
||||
import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter;
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatform;
|
||||
import org.jetbrains.kotlin.resolve.TargetPlatform;
|
||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform;
|
||||
@@ -107,6 +112,10 @@ public class KotlinModuleSettingStep extends ModuleWizardStep {
|
||||
((CustomLibraryDescriptorWithDeferredConfig) customLibraryDescription).finishLibConfiguration(module, rootModel, isNewProject);
|
||||
}
|
||||
}
|
||||
|
||||
if (isNewProject) {
|
||||
ProjectCodeStyleImporter.INSTANCE.apply(module.getProject(), KotlinStyleGuideCodeStyle.Companion.getINSTANCE());
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2018 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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.framework
|
||||
|
||||
import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider
|
||||
import com.intellij.openapi.module.Module
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.allModules
|
||||
|
||||
@Suppress("unused")
|
||||
fun FrameworkSupportInModuleProvider.isInNewProject(module: Module): Boolean {
|
||||
return module.project.allModules().isEmpty()
|
||||
}
|
||||
Reference in New Issue
Block a user