diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index d60b378e291..71c5f58f36c 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -63,17 +63,9 @@ class ScriptDefinitionsManager(private val project: Project): ScriptDefinitionPr if (contributor !in definitionsByContributor) error("Unknown contributor: ${contributor.id}") - if (contributor.isError()) return emptyList() return definitionsByContributor[contributor] ?: emptyList() } - fun getContributorForDefinition(scriptDefinition: KotlinScriptDefinition): ScriptDefinitionContributor { - for ((contributor, definitions) in definitionsByContributor) { - if (definitions.contains(scriptDefinition)) return contributor - } - throw error("Unknown definition: ${scriptDefinition.name}") - } - private fun currentDefinitions(): List { val hasDefinitions = definitions.isNotEmpty() when { @@ -170,8 +162,6 @@ interface ScriptDefinitionContributor { fun getDefinitions(): List - fun isError(): Boolean = false - companion object { val EP_NAME: ExtensionPointName = ExtensionPointName.create("org.jetbrains.kotlin.scriptDefinitionContributor") diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt index ec38cd5d962..af0fb9e9170 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesFileAttribute.kt @@ -30,7 +30,7 @@ import kotlin.reflect.KProperty import kotlin.script.experimental.dependencies.ScriptDependencies var VirtualFile.scriptDependencies: ScriptDependencies? by ScriptDependenciesProperty() -private val scriptDependencies = FileAttribute("kotlin-script-dependencies", 2, false) +private val scriptDependencies = FileAttribute("kotlin-script-dependencies", 3, false) private class ScriptDependenciesProperty { diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt index c14910f2a88..60f8913c865 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt @@ -206,8 +206,8 @@ class ScriptDependenciesUpdater( requests.replace(file.path, lastRequest, ModStampedRequest(lastRequest.modificationStamp, job = null)) } ServiceManager.getService(project, ScriptReportSink::class.java)?.attachReports(file, result.reports) - val resultingDependencies = (result.dependencies ?: ScriptDependencies.Empty).adjustByDefinition(scriptDef) - if (saveNewDependencies(resultingDependencies, file, scriptDef)) { + val resultingDependencies = result.dependencies?.adjustByDefinition(scriptDef) ?: return + if (saveNewDependencies(resultingDependencies, file)) { notifyRootsChanged() } } @@ -215,17 +215,13 @@ class ScriptDependenciesUpdater( fun updateSync(file: VirtualFile, scriptDef: KotlinScriptDefinition): Boolean { - val newDeps = contentLoader.loadContentsAndResolveDependencies(scriptDef, file) ?: ScriptDependencies.Empty - return saveNewDependencies(newDeps, file, scriptDef) + val newDeps = contentLoader.loadContentsAndResolveDependencies(scriptDef, file) ?: return false + return saveNewDependencies(newDeps, file) } - private fun saveNewDependencies( - new: ScriptDependencies, - file: VirtualFile, - scriptDef: KotlinScriptDefinition - ): Boolean { + private fun saveNewDependencies(new: ScriptDependencies, file: VirtualFile): Boolean { val rootsChanged = cache.hasNotCachedRoots(new) - if (cache.save(file, new) && !ScriptDefinitionsManager.getInstance(project).getContributorForDefinition(scriptDef).isError()) { + if (cache.save(file, new)) { file.scriptDependencies = new } return rootsChanged diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt index 94db40db940..af5bdacee7b 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt @@ -88,8 +88,6 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD return loadDefinitions() } - override fun isError() = failedToLoad.get() - // NOTE: control flow here depends on suppressing exceptions from loadGradleTemplates calls // TODO: possibly combine exceptions from every loadGradleTemplates call, be mindful of KT-19276 private fun loadDefinitions(): List {