From c0690ff5f6f412d84b36fe66692416069de12547 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Mon, 9 Dec 2019 10:58:53 +0300 Subject: [PATCH] gradle.kts importing: move code to dedicated package --- .../importing/KotlinDslScriptIdeaModel.kt} | 28 ++++++++++--------- .../KotlinDslScriptModelDataService.kt} | 27 +++++++++--------- .../KotlinDslScriptModelProvider.kt | 10 +++---- .../KotlinDslScriptModelProvider.kt.191 | 0 .../KotlinDslScriptModelProvider.kt.as36 | 0 .../KotlinDslScriptModelResolver.191} | 0 .../KotlinDslScriptModelResolver.as36} | 0 .../KotlinDslScriptModelResolver.kt} | 6 ++-- idea/resources/META-INF/gradle-java.xml | 2 +- idea/resources/META-INF/gradle.xml | 2 +- 10 files changed, 38 insertions(+), 37 deletions(-) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration/buildScriptsResolverUtils.kt => scripting/gradle/importing/KotlinDslScriptIdeaModel.kt} (64%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration/KotlinGradleBuildScriptsDataService.kt => scripting/gradle/importing/KotlinDslScriptModelDataService.kt} (88%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration => scripting/gradle/importing}/KotlinDslScriptModelProvider.kt (77%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration => scripting/gradle/importing}/KotlinDslScriptModelProvider.kt.191 (100%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration => scripting/gradle/importing}/KotlinDslScriptModelProvider.kt.as36 (100%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration/KotlinGradleBuildScriptsResolver.kt.191 => scripting/gradle/importing/KotlinDslScriptModelResolver.191} (100%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration/KotlinGradleBuildScriptsResolver.kt.as36 => scripting/gradle/importing/KotlinDslScriptModelResolver.as36} (100%) rename idea/idea-gradle/src/org/jetbrains/kotlin/idea/{configuration/KotlinGradleBuildScriptsResolver.kt => scripting/gradle/importing/KotlinDslScriptModelResolver.kt} (92%) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/buildScriptsResolverUtils.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptIdeaModel.kt similarity index 64% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/buildScriptsResolverUtils.kt rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptIdeaModel.kt index c66165a47d6..a64f65ac90f 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/buildScriptsResolverUtils.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptIdeaModel.kt @@ -3,7 +3,7 @@ * 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.configuration +package org.jetbrains.kotlin.idea.scripting.gradle.importing import com.intellij.openapi.externalSystem.model.DataNode import com.intellij.openapi.externalSystem.model.project.ProjectData @@ -12,16 +12,15 @@ import org.gradle.tooling.model.kotlin.dsl.EditorReportSeverity import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel import org.jetbrains.kotlin.idea.util.NotNullableCopyableDataNodeUserDataProperty - -var DataNode.gradleKotlinBuildScripts +var DataNode.KOTLIN_DSL_SCRIPT_IDEA_MODELS: MutableList by NotNullableCopyableDataNodeUserDataProperty( - Key.create>( + Key.create>( "GRADLE_KOTLIN_BUILD_SCRIPTS" ), mutableListOf() ) -data class GradleKotlinBuildScriptData( +data class KotlinDslScriptIdeaModel( val file: String, val classPath: List, val sourcePath: List, @@ -40,30 +39,33 @@ data class GradleKotlinBuildScriptData( } @Suppress("unused") -fun KotlinGradleBuildScriptsResolver.copy(model: KotlinDslScriptsModel): List { +fun KotlinDslScriptModelResolver.copy(model: KotlinDslScriptsModel): List { return model.scriptModels.map { (file, model) -> - val messages = mutableListOf() + val messages = mutableListOf() model.exceptions.forEach { messages.add( - GradleKotlinBuildScriptData.Message(GradleKotlinBuildScriptData.Severity.ERROR, it) + KotlinDslScriptIdeaModel.Message( + KotlinDslScriptIdeaModel.Severity.ERROR, it + ) ) } model.editorReports.forEach { - messages.add(GradleKotlinBuildScriptData.Message( + messages.add(KotlinDslScriptIdeaModel.Message( when (it.severity) { - EditorReportSeverity.WARNING -> GradleKotlinBuildScriptData.Severity.WARNING - else -> GradleKotlinBuildScriptData.Severity.ERROR + EditorReportSeverity.WARNING -> KotlinDslScriptIdeaModel.Severity.WARNING + else -> KotlinDslScriptIdeaModel.Severity.ERROR }, it.message, it.position?.let { position -> - GradleKotlinBuildScriptData.Position(position.line, position.column) + KotlinDslScriptIdeaModel + .Position(position.line, position.column) } )) } - GradleKotlinBuildScriptData( + KotlinDslScriptIdeaModel( file.absolutePath, model.classPath.map { it.absolutePath }, model.sourcePath.map { it.absolutePath }, diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsDataService.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt similarity index 88% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsDataService.kt rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt index 0695dc140fa..10c62dbffdf 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsDataService.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelDataService.kt @@ -3,7 +3,7 @@ * 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.configuration +package org.jetbrains.kotlin.idea.scripting.gradle.importing import com.intellij.openapi.components.service import com.intellij.openapi.externalSystem.model.DataNode @@ -30,8 +30,6 @@ import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource import org.jetbrains.kotlin.scripting.resolve.adjustByDefinition -import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult -import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData import org.jetbrains.plugins.gradle.settings.GradleExecutionSettings import org.jetbrains.plugins.gradle.util.GradleConstants import java.io.File @@ -40,7 +38,7 @@ import kotlin.script.experimental.jvm.JvmDependency import kotlin.script.experimental.jvm.jdkHome import kotlin.script.experimental.jvm.jvm -class KotlinGradleBuildScriptsDataService : AbstractProjectDataService() { +class KotlinDslScriptModelDataService : AbstractProjectDataService() { override fun getTargetDataKey(): Key = ProjectKeys.PROJECT override fun onSuccessImport( @@ -52,7 +50,7 @@ class KotlinGradleBuildScriptsDataService : AbstractProjectDataService NotificationCategory.WARNING - GradleKotlinBuildScriptData.Severity.ERROR -> NotificationCategory.ERROR + KotlinDslScriptIdeaModel.Severity.WARNING -> NotificationCategory.WARNING + KotlinDslScriptIdeaModel.Severity.ERROR -> NotificationCategory.ERROR }, NotificationSource.PROJECT_SYNC ) - notification.navigatable = LazyNavigatable( - virtualFile, - project, - message.position - ) + notification.navigatable = + LazyNavigatable( + virtualFile, + project, + message.position + ) ExternalSystemNotificationManager.getInstance(project).showNotification( GradleConstants.SYSTEM_ID, @@ -136,7 +135,7 @@ class KotlinGradleBuildScriptsDataService : AbstractProjectDataService - if (module.gradleProject.parent == null) { - val model = controller.findModel(module.gradleProject, kotlinDslScriptModelClass) + buildModel.projects.forEach { + if (it.parent == null) { + val model = controller.findModel(it, kotlinDslScriptModelClass) if (model != null) { - consumer.consume(module, model, kotlinDslScriptModelClass) + consumer.consumeProjectModel(it, model, kotlinDslScriptModelClass) } } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslScriptModelProvider.kt.191 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt.191 similarity index 100% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslScriptModelProvider.kt.191 rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt.191 diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslScriptModelProvider.kt.as36 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt.as36 similarity index 100% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinDslScriptModelProvider.kt.as36 rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt.as36 diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.191 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.191 similarity index 100% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.191 rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.191 diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.as36 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.as36 similarity index 100% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.as36 rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.as36 diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt similarity index 92% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt rename to idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt index 0456d2ee33d..9ba493c350c 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt @@ -3,7 +3,7 @@ * 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.configuration +package org.jetbrains.kotlin.idea.scripting.gradle.importing import com.intellij.openapi.externalSystem.model.DataNode import com.intellij.openapi.externalSystem.model.project.ProjectData @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_support import org.jetbrains.plugins.gradle.model.ProjectImportModelProvider import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension -class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() { +class KotlinDslScriptModelResolver : AbstractProjectResolverExtension() { override fun getExtraProjectModelClasses(): Set> { return setOf(KotlinDslScriptsModel::class.java) } @@ -61,7 +61,7 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() { if (it.gradleProject.parent == null) { resolverCtx.getExtraProject(it, KotlinDslScriptsModel::class.java)?.let { model -> // we need a copy to avoid memory leak, as model is java rmi proxy object - ideProject.gradleKotlinBuildScripts.addAll(copy(model)) + ideProject.KOTLIN_DSL_SCRIPT_IDEA_MODELS.addAll(copy(model)) } } } diff --git a/idea/resources/META-INF/gradle-java.xml b/idea/resources/META-INF/gradle-java.xml index 8d6c3c34d3d..e690bde27e3 100644 --- a/idea/resources/META-INF/gradle-java.xml +++ b/idea/resources/META-INF/gradle-java.xml @@ -10,7 +10,7 @@ - + diff --git a/idea/resources/META-INF/gradle.xml b/idea/resources/META-INF/gradle.xml index 80bdaa3c478..aed4e300e15 100644 --- a/idea/resources/META-INF/gradle.xml +++ b/idea/resources/META-INF/gradle.xml @@ -28,7 +28,7 @@ - +