GradleScriptConfigurationsImportingFeature

This commit is contained in:
Sergey Rostov
2020-06-15 17:29:54 +03:00
parent 631e68c99a
commit ce20196006
5 changed files with 43 additions and 1 deletions
@@ -1,3 +1,4 @@
gradle.script.configurations.importing.feature=Load gradle kotlin scripts configuration from project importing
notification.outsideAnything.text=Code insight unavailable (related Gradle project not linked)
notification.outsideAnything.linkAction=Link Gradle project
notification.wasNotImportedAfterCreation.text=Code insight unavailable (Gradle project not imported)
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.scripting.gradle
import com.intellij.openapi.project.ProjectManager
import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle
import org.jetbrains.kotlin.idea.configuration.ExperimentalFeature
import org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager
object GradleScriptConfigurationsImportingFeature : ExperimentalFeature() {
override val title: String
get() = KotlinIdeaGradleBundle.message("gradle.script.configurations.importing.feature")
override fun shouldBeShown(): Boolean = true
override var isEnabled: Boolean = true
set(value) {
if (field != value) {
field = value
ProjectManager.getInstance().openProjects.forEach {
GradleBuildRootsManager.getInstance(it).enabled = field
}
}
}
}
@@ -67,6 +67,16 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
private val updater
get() = manager.updater
var enabled: Boolean = true
set(value) {
if (value != field) {
field = value
roots.list.toList().forEach {
reloadBuildRoot(it.pathPrefix)
}
}
}
////////////
/// ScriptingSupport.Provider implementation:
@@ -275,7 +285,8 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(),
}
private fun loadLinkedRoot(settings: GradleProjectSettings) =
tryLoadFromFsCache(settings) ?: createOtherLinkedRoot(settings)
if (!enabled) Legacy(settings)
else tryLoadFromFsCache(settings) ?: createOtherLinkedRoot(settings)
private fun tryLoadFromFsCache(settings: GradleProjectSettings) =
tryCreateImportedRoot(settings.externalProjectPath) {
+1
View File
@@ -10,6 +10,7 @@
<extensions defaultExtensionNs="org.jetbrains.kotlin">
<buildSystemTypeDetector implementation="org.jetbrains.kotlin.idea.configuration.GradleDetector"/>
<scriptDiagnosticFixProvider implementation="org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptDiagnosticFixProvider"/>
<experimentalFeature implementation="org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptConfigurationsImportingFeature"/>
</extensions>
<extensions defaultExtensionNs="org.jetbrains.kotlin.scripting.idea">
+1
View File
@@ -10,6 +10,7 @@
<extensions defaultExtensionNs="org.jetbrains.kotlin">
<buildSystemTypeDetector implementation="org.jetbrains.kotlin.idea.configuration.GradleDetector"/>
<scriptDiagnosticFixProvider implementation="org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptDiagnosticFixProvider"/>
<experimentalFeature implementation="org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptConfigurationsImportingFeature"/>
</extensions>
<extensions defaultExtensionNs="org.jetbrains.kotlin.scripting.idea">