Call Gradle import handlers when importing Gradle modules from new mpp plugin

This enables serialization and other plugins in IDE with new mpp
This commit is contained in:
Leonid Startsev
2018-10-09 19:03:50 +03:00
parent 3590d534e5
commit facd2d7aec
@@ -25,10 +25,7 @@ import org.jetbrains.kotlin.gradle.KotlinCompilation
import org.jetbrains.kotlin.gradle.KotlinModule import org.jetbrains.kotlin.gradle.KotlinModule
import org.jetbrains.kotlin.gradle.KotlinPlatform import org.jetbrains.kotlin.gradle.KotlinPlatform
import org.jetbrains.kotlin.gradle.KotlinSourceSet import org.jetbrains.kotlin.gradle.KotlinSourceSet
import org.jetbrains.kotlin.idea.facet.applyCompilerArgumentsToFacet import org.jetbrains.kotlin.idea.facet.*
import org.jetbrains.kotlin.idea.facet.configureFacet
import org.jetbrains.kotlin.idea.facet.getOrCreateFacet
import org.jetbrains.kotlin.idea.facet.noVersionAutoAdvance
import org.jetbrains.kotlin.idea.inspections.gradle.findAll import org.jetbrains.kotlin.idea.inspections.gradle.findAll
import org.jetbrains.kotlin.idea.inspections.gradle.findKotlinPluginVersion import org.jetbrains.kotlin.idea.inspections.gradle.findKotlinPluginVersion
import org.jetbrains.kotlin.idea.platform.IdePlatformKindTooling import org.jetbrains.kotlin.idea.platform.IdePlatformKindTooling
@@ -61,7 +58,9 @@ class KotlinSourceSetDataService : AbstractProjectDataService<GradleSourceSetDat
migrateNonJvmSourceFolders(rootModel) migrateNonJvmSourceFolders(rootModel)
} }
configureFacet(sourceSetData, kotlinSourceSet, mainModuleData, ideModule, modelsProvider) configureFacet(sourceSetData, kotlinSourceSet, mainModuleData, ideModule, modelsProvider)?.let { facet ->
GradleProjectImportHandler.getInstances(project).forEach { it.importBySourceSet(facet, nodeToImport) }
}
if (kotlinSourceSet.isTestModule) { if (kotlinSourceSet.isTestModule) {
assignTestScope(rootModel) assignTestScope(rootModel)
@@ -92,12 +91,12 @@ class KotlinSourceSetDataService : AbstractProjectDataService<GradleSourceSetDat
mainModuleNode: DataNode<ModuleData>, mainModuleNode: DataNode<ModuleData>,
ideModule: Module, ideModule: Module,
modelsProvider: IdeModifiableModelsProvider modelsProvider: IdeModifiableModelsProvider
) { ): KotlinFacet? {
val compilerVersion = mainModuleNode val compilerVersion = mainModuleNode
.findAll(BuildScriptClasspathData.KEY) .findAll(BuildScriptClasspathData.KEY)
.firstOrNull() .firstOrNull()
?.data ?.data
?.let { findKotlinPluginVersion(it) } ?: return ?.let { findKotlinPluginVersion(it) } ?: return null
val platformKind = IdePlatformKindTooling.getTooling(kotlinSourceSet.platform).kind val platformKind = IdePlatformKindTooling.getTooling(kotlinSourceSet.platform).kind
val platform = when (platformKind) { val platform = when (platformKind) {
@@ -151,6 +150,8 @@ class KotlinSourceSetDataService : AbstractProjectDataService<GradleSourceSetDat
testOutputPath = null testOutputPath = null
} }
} }
return kotlinFacet
} }
} }
} }