Scripting: check that kotlin dsl models are provided during import as soon as possible

This commit is contained in:
Natalia Selezneva
2019-11-20 12:24:59 +03:00
parent 249789d6eb
commit 2f1915d85e
@@ -52,6 +52,7 @@ class KotlinGradleBuildScriptsDataService : AbstractProjectDataService<GradleSou
super.onSuccessImport(imported, projectData, project, modelsProvider) super.onSuccessImport(imported, projectData, project, modelsProvider)
val projectDataNode = imported.firstNotNullResult { ExternalSystemApiUtil.findParent(it, ProjectKeys.PROJECT) } ?: return val projectDataNode = imported.firstNotNullResult { ExternalSystemApiUtil.findParent(it, ProjectKeys.PROJECT) } ?: return
val buildScripts = projectDataNode.gradleKotlinBuildScripts ?: return
val gradleSettings = ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID) val gradleSettings = ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID)
val projectSettings = gradleSettings.getLinkedProjectSettings(projectData?.linkedExternalProjectPath ?: return) ?: return val projectSettings = gradleSettings.getLinkedProjectSettings(projectData?.linkedExternalProjectPath ?: return) ?: return
@@ -62,9 +63,9 @@ class KotlinGradleBuildScriptsDataService : AbstractProjectDataService<GradleSou
) )
val javaHome = File(gradleExeSettings.javaHome ?: return) val javaHome = File(gradleExeSettings.javaHome ?: return)
val files = mutableListOf<Pair<VirtualFile, ScriptConfigurationSnapshot>>() val scriptConfigurations = mutableListOf<Pair<VirtualFile, ScriptConfigurationSnapshot>>()
projectDataNode.gradleKotlinBuildScripts?.forEach { buildScript -> buildScripts.forEach { buildScript ->
val scriptFile = File(buildScript.file) val scriptFile = File(buildScript.file)
val virtualFile = VfsUtil.findFile(scriptFile.toPath(), true)!! val virtualFile = VfsUtil.findFile(scriptFile.toPath(), true)!!
@@ -81,7 +82,7 @@ class KotlinGradleBuildScriptsDataService : AbstractProjectDataService<GradleSou
ide.dependenciesSources(JvmDependency(buildScript.sourcePath.map { File(it) })) ide.dependenciesSources(JvmDependency(buildScript.sourcePath.map { File(it) }))
}.adjustByDefinition(definition) }.adjustByDefinition(definition)
files.add( scriptConfigurations.add(
Pair( Pair(
virtualFile, virtualFile,
ScriptConfigurationSnapshot( ScriptConfigurationSnapshot(
@@ -100,7 +101,7 @@ class KotlinGradleBuildScriptsDataService : AbstractProjectDataService<GradleSou
} }
} }
project.service<ScriptConfigurationManager>().saveCompilationConfigurationAfterImport(files) project.service<ScriptConfigurationManager>().saveCompilationConfigurationAfterImport(scriptConfigurations)
} }
private fun addBuildScriptDiagnosticMessage( private fun addBuildScriptDiagnosticMessage(