Configuration: Support external storage for imported facets
#KT-25913 Fixed
This commit is contained in:
+2
-1
@@ -54,6 +54,7 @@ import org.jetbrains.kotlin.idea.roots.migrateNonJvmSourceFolders
|
|||||||
import org.jetbrains.kotlin.psi.UserDataProperty
|
import org.jetbrains.kotlin.psi.UserDataProperty
|
||||||
import org.jetbrains.plugins.gradle.model.data.BuildScriptClasspathData
|
import org.jetbrains.plugins.gradle.model.data.BuildScriptClasspathData
|
||||||
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
||||||
|
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -220,7 +221,7 @@ fun configureFacetByGradleModule(
|
|||||||
moduleNode.coroutines ?: findKotlinCoroutinesProperty(ideModule.project)
|
moduleNode.coroutines ?: findKotlinCoroutinesProperty(ideModule.project)
|
||||||
)
|
)
|
||||||
|
|
||||||
val kotlinFacet = ideModule.getOrCreateFacet(modelsProvider, false)
|
val kotlinFacet = ideModule.getOrCreateFacet(modelsProvider, false, GradleConstants.SYSTEM_ID.id)
|
||||||
kotlinFacet.configureFacet(compilerVersion, coroutinesProperty, platformKind, modelsProvider)
|
kotlinFacet.configureFacet(compilerVersion, coroutinesProperty, platformKind, modelsProvider)
|
||||||
|
|
||||||
if (sourceSetNode == null) {
|
if (sourceSetNode == null) {
|
||||||
|
|||||||
@@ -22,10 +22,7 @@ import com.intellij.openapi.components.Storage
|
|||||||
import com.intellij.openapi.components.StoragePathMacros
|
import com.intellij.openapi.components.StoragePathMacros
|
||||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.roots.CompilerModuleExtension
|
import com.intellij.openapi.roots.*
|
||||||
import com.intellij.openapi.roots.ModifiableRootModel
|
|
||||||
import com.intellij.openapi.roots.OrderEnumerator
|
|
||||||
import com.intellij.openapi.roots.OrderRootType
|
|
||||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||||
import com.intellij.openapi.roots.libraries.Library
|
import com.intellij.openapi.roots.libraries.Library
|
||||||
import com.intellij.openapi.util.AsyncResult
|
import com.intellij.openapi.util.AsyncResult
|
||||||
@@ -250,7 +247,11 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
|||||||
private fun configureFacet(mavenProject: MavenProject, modifiableModelsProvider: IdeModifiableModelsProvider, module: Module) {
|
private fun configureFacet(mavenProject: MavenProject, modifiableModelsProvider: IdeModifiableModelsProvider, module: Module) {
|
||||||
val mavenPlugin = mavenProject.findPlugin(KotlinMavenConfigurator.GROUP_ID, KotlinMavenConfigurator.MAVEN_PLUGIN_ID) ?: return
|
val mavenPlugin = mavenProject.findPlugin(KotlinMavenConfigurator.GROUP_ID, KotlinMavenConfigurator.MAVEN_PLUGIN_ID) ?: return
|
||||||
val compilerVersion = mavenPlugin.version ?: LanguageVersion.LATEST_STABLE.versionString
|
val compilerVersion = mavenPlugin.version ?: LanguageVersion.LATEST_STABLE.versionString
|
||||||
val kotlinFacet = module.getOrCreateFacet(modifiableModelsProvider, false)
|
val kotlinFacet = module.getOrCreateFacet(
|
||||||
|
modifiableModelsProvider,
|
||||||
|
false,
|
||||||
|
ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID
|
||||||
|
)
|
||||||
val platform = detectPlatform(mavenProject)
|
val platform = detectPlatform(mavenProject)
|
||||||
|
|
||||||
kotlinFacet.configureFacet(compilerVersion, LanguageFeature.Coroutines.defaultState, platform, modifiableModelsProvider)
|
kotlinFacet.configureFacet(compilerVersion, LanguageFeature.Coroutines.defaultState, platform, modifiableModelsProvider)
|
||||||
|
|||||||
@@ -22,10 +22,7 @@ import com.intellij.openapi.components.Storage
|
|||||||
import com.intellij.openapi.components.StoragePathMacros
|
import com.intellij.openapi.components.StoragePathMacros
|
||||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.roots.CompilerModuleExtension
|
import com.intellij.openapi.roots.*
|
||||||
import com.intellij.openapi.roots.ModifiableRootModel
|
|
||||||
import com.intellij.openapi.roots.OrderEnumerator
|
|
||||||
import com.intellij.openapi.roots.OrderRootType
|
|
||||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||||
import com.intellij.openapi.roots.libraries.Library
|
import com.intellij.openapi.roots.libraries.Library
|
||||||
import com.intellij.openapi.util.AsyncResult
|
import com.intellij.openapi.util.AsyncResult
|
||||||
@@ -250,7 +247,11 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
|||||||
private fun configureFacet(mavenProject: MavenProject, modifiableModelsProvider: IdeModifiableModelsProvider, module: Module) {
|
private fun configureFacet(mavenProject: MavenProject, modifiableModelsProvider: IdeModifiableModelsProvider, module: Module) {
|
||||||
val mavenPlugin = mavenProject.findPlugin(KotlinMavenConfigurator.GROUP_ID, KotlinMavenConfigurator.MAVEN_PLUGIN_ID) ?: return
|
val mavenPlugin = mavenProject.findPlugin(KotlinMavenConfigurator.GROUP_ID, KotlinMavenConfigurator.MAVEN_PLUGIN_ID) ?: return
|
||||||
val compilerVersion = mavenPlugin.version ?: LanguageVersion.LATEST_STABLE.versionString
|
val compilerVersion = mavenPlugin.version ?: LanguageVersion.LATEST_STABLE.versionString
|
||||||
val kotlinFacet = module.getOrCreateFacet(modifiableModelsProvider, false)
|
val kotlinFacet = module.getOrCreateFacet(
|
||||||
|
modifiableModelsProvider,
|
||||||
|
false,
|
||||||
|
ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID
|
||||||
|
)
|
||||||
val platform = detectPlatform(mavenProject)
|
val platform = detectPlatform(mavenProject)
|
||||||
|
|
||||||
kotlinFacet.configureFacet(compilerVersion, LanguageFeature.Coroutines.defaultState, platform, modifiableModelsProvider)
|
kotlinFacet.configureFacet(compilerVersion, LanguageFeature.Coroutines.defaultState, platform, modifiableModelsProvider)
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.projectRoots.JavaSdk
|
import com.intellij.openapi.projectRoots.JavaSdk
|
||||||
import com.intellij.openapi.projectRoots.JavaSdkVersion
|
import com.intellij.openapi.projectRoots.JavaSdkVersion
|
||||||
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
||||||
|
import com.intellij.openapi.roots.ExternalProjectSystemRegistry
|
||||||
import com.intellij.openapi.roots.ModuleRootManager
|
import com.intellij.openapi.roots.ModuleRootManager
|
||||||
import com.intellij.openapi.roots.ModuleRootModel
|
import com.intellij.openapi.roots.ModuleRootModel
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
@@ -124,13 +125,17 @@ val mavenLibraryIdToPlatform: Map<String, TargetPlatformKind<*>> by lazy {
|
|||||||
fun Module.getOrCreateFacet(
|
fun Module.getOrCreateFacet(
|
||||||
modelsProvider: IdeModifiableModelsProvider,
|
modelsProvider: IdeModifiableModelsProvider,
|
||||||
useProjectSettings: Boolean,
|
useProjectSettings: Boolean,
|
||||||
|
externalSystemId: String? = null,
|
||||||
commitModel: Boolean = false
|
commitModel: Boolean = false
|
||||||
): KotlinFacet {
|
): KotlinFacet {
|
||||||
val facetModel = modelsProvider.getModifiableFacetModel(this)
|
val facetModel = modelsProvider.getModifiableFacetModel(this)
|
||||||
|
|
||||||
val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName)
|
val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName)
|
||||||
?: with(KotlinFacetType.INSTANCE) { createFacet(this@getOrCreateFacet, defaultFacetName, createDefaultConfiguration(), null) }
|
?: with(KotlinFacetType.INSTANCE) { createFacet(this@getOrCreateFacet, defaultFacetName, createDefaultConfiguration(), null) }
|
||||||
.apply { facetModel.addFacet(this) }
|
.apply {
|
||||||
|
val externalSource = externalSystemId?.let { ExternalProjectSystemRegistry.getInstance().getSourceById(it) }
|
||||||
|
facetModel.addFacet(this, externalSource)
|
||||||
|
}
|
||||||
facet.configuration.settings.useProjectSettings = useProjectSettings
|
facet.configuration.settings.useProjectSettings = useProjectSettings
|
||||||
if (commitModel) {
|
if (commitModel) {
|
||||||
runWriteAction {
|
runWriteAction {
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
|||||||
private void configureFacetAndCheckJvm(JvmTarget jvmTarget) {
|
private void configureFacetAndCheckJvm(JvmTarget jvmTarget) {
|
||||||
IdeModifiableModelsProviderImpl modelsProvider = new IdeModifiableModelsProviderImpl(getProject());
|
IdeModifiableModelsProviderImpl modelsProvider = new IdeModifiableModelsProviderImpl(getProject());
|
||||||
try {
|
try {
|
||||||
KotlinFacet facet = FacetUtilsKt.getOrCreateFacet(getModule(), modelsProvider, false, false);
|
KotlinFacet facet = FacetUtilsKt.getOrCreateFacet(getModule(), modelsProvider, false, null, false);
|
||||||
TargetPlatformKind.Jvm platformKind = TargetPlatformKind.Jvm.Companion.get(jvmTarget);
|
TargetPlatformKind.Jvm platformKind = TargetPlatformKind.Jvm.Companion.get(jvmTarget);
|
||||||
FacetUtilsKt.configureFacet(
|
FacetUtilsKt.configureFacet(
|
||||||
facet,
|
facet,
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
|||||||
private void configureFacetAndCheckJvm(JvmTarget jvmTarget) {
|
private void configureFacetAndCheckJvm(JvmTarget jvmTarget) {
|
||||||
IdeModifiableModelsProviderImpl modelsProvider = new IdeModifiableModelsProviderImpl(getProject());
|
IdeModifiableModelsProviderImpl modelsProvider = new IdeModifiableModelsProviderImpl(getProject());
|
||||||
try {
|
try {
|
||||||
KotlinFacet facet = FacetUtilsKt.getOrCreateFacet(getModule(), modelsProvider, false, false);
|
KotlinFacet facet = FacetUtilsKt.getOrCreateFacet(getModule(), modelsProvider, false, null, false);
|
||||||
TargetPlatformKind.Jvm platformKind = TargetPlatformKind.Jvm.Companion.get(jvmTarget);
|
TargetPlatformKind.Jvm platformKind = TargetPlatformKind.Jvm.Companion.get(jvmTarget);
|
||||||
FacetUtilsKt.configureFacet(
|
FacetUtilsKt.configureFacet(
|
||||||
facet,
|
facet,
|
||||||
|
|||||||
Reference in New Issue
Block a user