From a84e9480511e8ed207c5f9d98159f27530f4443e Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Wed, 13 Nov 2019 10:23:28 +0300 Subject: [PATCH] Scripting: pass KtFile to ScriptConfigurationLoader --- .../DefaultScriptConfigurationManager.kt | 6 +++--- .../cache/ScriptConfigurationFileAttributeCache.kt | 4 +++- .../kotlin/idea/core/script/configuration/gradle.kt | 6 +++--- .../loader/DefaultScriptConfigurationLoader.kt | 13 ++++++------- .../loader/ScriptConfigurationLoader.kt | 4 ++-- .../loader/ScriptOutsiderFileConfigurationLoader.kt | 5 +++-- 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt index 9e87a45af42..b7850db1ef9 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt @@ -175,11 +175,11 @@ internal class DefaultScriptConfigurationManager(project: Project) : val (async, sync) = loaders.partition { it.shouldRunInBackground(scriptDefinition) } - val syncLoader = sync.firstOrNull { it.loadDependencies(isFirstLoad, virtualFile, scriptDefinition, loadingContext) } + val syncLoader = sync.firstOrNull { it.loadDependencies(isFirstLoad, file, scriptDefinition, loadingContext) } if (syncLoader == null) { // run async loader if (forceSync) { - async.first { it.loadDependencies(isFirstLoad, virtualFile, scriptDefinition, loadingContext) } + async.first { it.loadDependencies(isFirstLoad, file, scriptDefinition, loadingContext) } } else { backgroundExecutor.ensureScheduled(virtualFile) { val cached = getCachedConfigurationState(virtualFile) @@ -192,7 +192,7 @@ internal class DefaultScriptConfigurationManager(project: Project) : // don't start loading if nothing was changed // (in case we checking for up-to-date and loading concurrently) val actualIsFirstLoad = cached == null - async.first { it.loadDependencies(actualIsFirstLoad, virtualFile, scriptDefinition, loadingContext) } + async.first { it.loadDependencies(actualIsFirstLoad, file, scriptDefinition, loadingContext) } } } } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt index 733fbe3ac18..aba848c530c 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigur import org.jetbrains.kotlin.idea.core.script.configuration.utils.getKtFile import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.idea.core.util.* +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition import org.jetbrains.kotlin.scripting.resolve.KtFileScriptSource @@ -30,12 +31,13 @@ internal class ScriptConfigurationFileAttributeCache( */ override fun loadDependencies( isFirstLoad: Boolean, - virtualFile: VirtualFile, + ktFile: KtFile, scriptDefinition: ScriptDefinition, context: ScriptConfigurationLoadingContext ): Boolean { if (!isFirstLoad) return false + val virtualFile = ktFile.originalFile.virtualFile val fromFs = load(virtualFile) ?: return false val result = ScriptConfigurationSnapshot( diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/gradle.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/gradle.kt index d2edbb4b333..b6fb5f2a5b8 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/gradle.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/gradle.kt @@ -58,11 +58,11 @@ class GradleScriptConfigurationLoader(project: Project) : DefaultScriptConfigura override fun loadDependencies( isFirstLoad: Boolean, - virtualFile: VirtualFile, + ktFile: KtFile, scriptDefinition: ScriptDefinition, context: ScriptConfigurationLoadingContext ): Boolean { - if (!isGradleKotlinScript(virtualFile)) return false + if (!isGradleKotlinScript(ktFile.originalFile.virtualFile)) return false if (useProjectImport) { // do nothing, project import notification will be already showed @@ -78,7 +78,7 @@ class GradleScriptConfigurationLoader(project: Project) : DefaultScriptConfigura } } - return super.loadDependencies(isFirstLoad, virtualFile, scriptDefinition, context) + return super.loadDependencies(isFirstLoad, ktFile, scriptDefinition, context) } } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt index 9a65b74f2d6..4e282057d2c 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt @@ -10,7 +10,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.idea.core.script.configuration.cache.CachedConfigurationInputs import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationSnapshot -import org.jetbrains.kotlin.idea.core.script.configuration.utils.getKtFile import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition @@ -33,18 +32,18 @@ open class DefaultScriptConfigurationLoader(val project: Project) : ScriptConfig override fun loadDependencies( isFirstLoad: Boolean, - virtualFile: VirtualFile, + ktFile: KtFile, scriptDefinition: ScriptDefinition, context: ScriptConfigurationLoadingContext ): Boolean { - val file = project.getKtFile(virtualFile) ?: return false + val virtualFile = ktFile.originalFile.virtualFile - debug(file) { "start dependencies loading" } + debug(ktFile) { "start dependencies loading" } - val inputs = getInputsStamp(virtualFile, file) + val inputs = getInputsStamp(virtualFile, ktFile) val scriptingApiResult = try { refineScriptCompilationConfiguration( - KtFileScriptSource(file), scriptDefinition, file.project + KtFileScriptSource(ktFile), scriptDefinition, ktFile.project ) } catch (e: Throwable) { if (e is ControlFlowException) throw e @@ -60,7 +59,7 @@ open class DefaultScriptConfigurationLoader(val project: Project) : ScriptConfig context.suggestNewConfiguration(virtualFile, result) - debug(file) { "finish dependencies loading" } + debug(ktFile) { "finish dependencies loading" } return true } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptConfigurationLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptConfigurationLoader.kt index 19c8976db84..8632b4808a3 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptConfigurationLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptConfigurationLoader.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.idea.core.script.configuration.loader -import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition /** @@ -23,7 +23,7 @@ internal interface ScriptConfigurationLoader { */ fun loadDependencies( isFirstLoad: Boolean, - virtualFile: VirtualFile, + ktFile: KtFile, scriptDefinition: ScriptDefinition, context: ScriptConfigurationLoadingContext ): Boolean diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptOutsiderFileConfigurationLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptOutsiderFileConfigurationLoader.kt index 4543ae729d9..280ada2f555 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptOutsiderFileConfigurationLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptOutsiderFileConfigurationLoader.kt @@ -6,21 +6,22 @@ package org.jetbrains.kotlin.idea.core.script.configuration.loader import com.intellij.openapi.project.Project -import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationSnapshot import org.jetbrains.kotlin.idea.highlighter.OutsidersPsiFileSupportUtils +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition internal class ScriptOutsiderFileConfigurationLoader(val project: Project) : ScriptConfigurationLoader { override fun loadDependencies( isFirstLoad: Boolean, - virtualFile: VirtualFile, + ktFile: KtFile, scriptDefinition: ScriptDefinition, context: ScriptConfigurationLoadingContext ): Boolean { if (!isFirstLoad) return false + val virtualFile = ktFile.originalFile.virtualFile val fileOrigin = OutsidersPsiFileSupportUtils.getOutsiderFileOrigin( project, virtualFile