Scripting: configurations from gradle import should be always taken into account (KT-34442)
Do not rely on registry option ^KT-34442
This commit is contained in:
+9
-9
@@ -12,8 +12,8 @@ import com.intellij.util.Consumer
|
|||||||
import org.gradle.tooling.model.idea.IdeaProject
|
import org.gradle.tooling.model.idea.IdeaProject
|
||||||
import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.*
|
import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.*
|
||||||
import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel
|
import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel
|
||||||
|
import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported
|
||||||
import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_supported
|
import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_supported
|
||||||
import org.jetbrains.kotlin.idea.scripting.gradle.shouldLoadDependenciesDuringImport
|
|
||||||
import org.jetbrains.plugins.gradle.model.ProjectImportExtraModelProvider
|
import org.jetbrains.plugins.gradle.model.ProjectImportExtraModelProvider
|
||||||
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
||||||
|
|
||||||
@@ -32,11 +32,9 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun enhanceTaskProcessing(taskNames: MutableList<String>, jvmParametersSetup: String?, initScriptConsumer: Consumer<String>) {
|
override fun enhanceTaskProcessing(taskNames: MutableList<String>, jvmParametersSetup: String?, initScriptConsumer: Consumer<String>) {
|
||||||
if (shouldLoadDependenciesDuringImport()) {
|
initScriptConsumer.consume(
|
||||||
initScriptConsumer.consume(
|
"if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]"
|
||||||
"if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]"
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getExtraModelProvider(): ProjectImportExtraModelProvider {
|
override fun getExtraModelProvider(): ProjectImportExtraModelProvider {
|
||||||
@@ -46,9 +44,11 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() {
|
|||||||
override fun populateProjectExtraModels(gradleProject: IdeaProject, ideProject: DataNode<ProjectData>) {
|
override fun populateProjectExtraModels(gradleProject: IdeaProject, ideProject: DataNode<ProjectData>) {
|
||||||
super.populateProjectExtraModels(gradleProject, ideProject)
|
super.populateProjectExtraModels(gradleProject, ideProject)
|
||||||
|
|
||||||
resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model ->
|
if (kotlinDslScriptsModelImportSupported(resolverCtx.projectGradleVersion)) {
|
||||||
// we need a copy to avoid memory leak, as model is java rmi proxy object
|
resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model ->
|
||||||
ideProject.gradleKotlinBuildScripts = copy(model)
|
// we need a copy to avoid memory leak, as model is java rmi proxy object
|
||||||
|
ideProject.gradleKotlinBuildScripts = copy(model)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-9
@@ -12,8 +12,8 @@ import com.intellij.util.Consumer
|
|||||||
import org.gradle.tooling.model.idea.IdeaProject
|
import org.gradle.tooling.model.idea.IdeaProject
|
||||||
import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.*
|
import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.*
|
||||||
import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel
|
import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel
|
||||||
|
import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported
|
||||||
import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_supported
|
import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_supported
|
||||||
import org.jetbrains.kotlin.idea.scripting.gradle.shouldLoadDependenciesDuringImport
|
|
||||||
import org.jetbrains.plugins.gradle.model.ProjectImportModelProvider
|
import org.jetbrains.plugins.gradle.model.ProjectImportModelProvider
|
||||||
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
||||||
|
|
||||||
@@ -32,11 +32,9 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun enhanceTaskProcessing(taskNames: MutableList<String>, jvmParametersSetup: String?, initScriptConsumer: Consumer<String>) {
|
override fun enhanceTaskProcessing(taskNames: MutableList<String>, jvmParametersSetup: String?, initScriptConsumer: Consumer<String>) {
|
||||||
if (shouldLoadDependenciesDuringImport()) {
|
initScriptConsumer.consume(
|
||||||
initScriptConsumer.consume(
|
"if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]"
|
||||||
"if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]"
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getModelProvider(): ProjectImportModelProvider {
|
override fun getModelProvider(): ProjectImportModelProvider {
|
||||||
@@ -46,9 +44,11 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() {
|
|||||||
override fun populateProjectExtraModels(gradleProject: IdeaProject, ideProject: DataNode<ProjectData>) {
|
override fun populateProjectExtraModels(gradleProject: IdeaProject, ideProject: DataNode<ProjectData>) {
|
||||||
super.populateProjectExtraModels(gradleProject, ideProject)
|
super.populateProjectExtraModels(gradleProject, ideProject)
|
||||||
|
|
||||||
resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model ->
|
if (kotlinDslScriptsModelImportSupported(resolverCtx.projectGradleVersion)) {
|
||||||
// we need a copy to avoid memory leak, as model is java rmi proxy object
|
resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model ->
|
||||||
ideProject.gradleKotlinBuildScripts = copy(model)
|
// we need a copy to avoid memory leak, as model is java rmi proxy object
|
||||||
|
ideProject.gradleKotlinBuildScripts = copy(model)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,13 @@
|
|||||||
package org.jetbrains.kotlin.idea.scripting.gradle
|
package org.jetbrains.kotlin.idea.scripting.gradle
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.registry.Registry
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.PsiRecursiveElementVisitor
|
import com.intellij.psi.PsiRecursiveElementVisitor
|
||||||
import com.intellij.psi.PsiWhiteSpace
|
import com.intellij.psi.PsiWhiteSpace
|
||||||
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
||||||
|
import org.gradle.util.GradleVersion
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -61,6 +61,6 @@ fun getGradleScriptInputsStamp(
|
|||||||
|
|
||||||
const val minimal_gradle_version_supported = "6.0"
|
const val minimal_gradle_version_supported = "6.0"
|
||||||
|
|
||||||
fun shouldLoadDependenciesDuringImport(): Boolean {
|
fun kotlinDslScriptsModelImportSupported(currentGradleVersion: String): Boolean {
|
||||||
return Registry.`is`("kotlin.gradle.scripts.useIdeaProjectImport", false)
|
return GradleVersion.version(currentGradleVersion) >= GradleVersion.version(minimal_gradle_version_supported)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user