From 07654b4c0ee3fb2fbcf18a853f1efddd46ed1cc9 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Sun, 14 Jun 2020 21:11:19 +0300 Subject: [PATCH] gradle.kts, minor: cleanup & simplify code --- .../configuration/DefaultScriptingSupport.kt | 27 ++++++++----------- .../codeInsight/gradle/GradleKtsImportTest.kt | 4 +-- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt index 70b645af6d2..09ae920c171 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptingSupport.kt @@ -175,13 +175,14 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De } else { val autoReloadEnabled = KotlinScriptingSettings.getInstance(project).autoReloadConfigurations(scriptDefinition) val postponeLoading = !autoReloadEnabled && async.any { it.isPostponedLoad(virtualFile) } + val forceSkipNotification = autoReloadEnabled || postponeLoading if (postponeLoading) { LoadScriptConfigurationNotificationFactory.showNotification(virtualFile, project) { - runAsyncLoaders(file, virtualFile, scriptDefinition, async, isLoadingPostponed = true) + runAsyncLoaders(file, virtualFile, scriptDefinition, async, forceSkipNotification) } } else { - runAsyncLoaders(file, virtualFile, scriptDefinition, async, isLoadingPostponed = false) + runAsyncLoaders(file, virtualFile, scriptDefinition, async, forceSkipNotification) } } } @@ -197,7 +198,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De virtualFile: VirtualFile, scriptDefinition: ScriptDefinition, loaders: List, - isLoadingPostponed: Boolean + forceSkipNotification: Boolean ) { backgroundExecutor.ensureScheduled(virtualFile) { val cached = getCachedConfigurationState(virtualFile) @@ -205,8 +206,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De val applied = cached?.applied if (applied != null && applied.inputs.isUpToDate(project, virtualFile)) { // in case user reverted to applied configuration - val skipNotification = isLoadingPostponed || KotlinScriptingSettings.getInstance(project).autoReloadConfigurations(scriptDefinition) - suggestOrSaveConfiguration(virtualFile, applied, skipNotification) + suggestOrSaveConfiguration(virtualFile, applied, forceSkipNotification) } else if (cached == null || !cached.isUpToDate(project, virtualFile)) { // don't start loading if nothing was changed // (in case we checking for up-to-date and loading concurrently) @@ -216,20 +216,15 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De } } - fun forceReloadConfiguration(file: KtFile, loader: ScriptConfigurationLoader): ScriptCompilationConfigurationWrapper? { + @TestOnly + fun runLoader(file: KtFile, loader: ScriptConfigurationLoader): ScriptCompilationConfigurationWrapper? { val virtualFile = file.originalFile.virtualFile ?: return null if (!ScriptDefinitionsManager.getInstance(project).isReady()) return null val scriptDefinition = file.findScriptDefinition() ?: return null manager.updater.update { - if (!loader.shouldRunInBackground(scriptDefinition)) { - loader.loadDependencies(false, file, scriptDefinition, loadingContext) - } else { - backgroundExecutor.ensureScheduled(virtualFile) { - loader.loadDependencies(false, file, scriptDefinition, loadingContext) - } - } + loader.loadDependencies(false, file, scriptDefinition, loadingContext) } return getAppliedConfiguration(virtualFile)?.configuration @@ -259,7 +254,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De private fun suggestOrSaveConfiguration( file: VirtualFile, newResult: ScriptConfigurationSnapshot, - skipNotification: Boolean + forceSkipNotification: Boolean ) { saveLock.withLock { debug(file) { "configuration received = $newResult" } @@ -278,11 +273,11 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De saveReports(file, newResult.reports) file.removeScriptDependenciesNotificationPanel(project) } else { - val autoReload = skipNotification + val skipNotification = forceSkipNotification || oldConfiguration == null || ApplicationManager.getApplication().isUnitTestModeWithoutScriptLoadingNotification - if (autoReload) { + if (skipNotification) { if (oldConfiguration != null) { file.removeScriptDependenciesNotificationPanel(project) } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleKtsImportTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleKtsImportTest.kt index f4353288f4b..035d7e80126 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleKtsImportTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleKtsImportTest.kt @@ -20,12 +20,10 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper import org.jetbrains.kotlin.test.JUnitParameterizedWithIdeaConfigurationRunner -import org.jetbrains.kotlin.test.RunnerFactoryWithMuteInDatabase import org.jetbrains.plugins.gradle.settings.GradleSettings import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions import org.junit.Test import org.junit.runner.RunWith -import org.junit.runners.Parameterized import org.junit.runners.Parameterized.Parameters import java.io.File @@ -98,7 +96,7 @@ class GradleKtsImportTest : GradleImportingTestCase() { // reload configuration and check this it is not changed scripts.forEach { - val reloadedConfiguration = scriptConfigurationManager.default.forceReloadConfiguration( + val reloadedConfiguration = scriptConfigurationManager.default.runLoader( it.psiFile, object : DefaultScriptConfigurationLoader(it.psiFile.project) { override fun shouldRunInBackground(scriptDefinition: ScriptDefinition) = false