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 09ae920c171..aa13e3fc3c0 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 @@ -158,7 +158,8 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De file: KtFile, isFirstLoad: Boolean, forceSync: Boolean, - fromCacheOnly: Boolean + fromCacheOnly: Boolean, + skipNotification: Boolean ): Boolean { val virtualFile = file.originalFile.virtualFile ?: return false @@ -174,8 +175,8 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De loaders.firstOrNull { it.loadDependencies(isFirstLoad, file, scriptDefinition, loadingContext) } } else { val autoReloadEnabled = KotlinScriptingSettings.getInstance(project).autoReloadConfigurations(scriptDefinition) - val postponeLoading = !autoReloadEnabled && async.any { it.isPostponedLoad(virtualFile) } - val forceSkipNotification = autoReloadEnabled || postponeLoading + val postponeLoading = !skipNotification && !autoReloadEnabled && async.any { it.isPostponedLoad(virtualFile) } + val forceSkipNotification = skipNotification || autoReloadEnabled || postponeLoading if (postponeLoading) { LoadScriptConfigurationNotificationFactory.showNotification(virtualFile, project) { @@ -384,7 +385,8 @@ abstract class DefaultScriptingSupportBase(val manager: CompositeScriptConfigura file: KtFile, isFirstLoad: Boolean = getAppliedConfiguration(file.originalFile.virtualFile) == null, forceSync: Boolean = false, - fromCacheOnly: Boolean = false + fromCacheOnly: Boolean = false, + skipNotification: Boolean = false ): Boolean fun getCachedConfigurationState(file: VirtualFile?): ScriptConfigurationState? { @@ -420,11 +422,11 @@ abstract class DefaultScriptingSupportBase(val manager: CompositeScriptConfigura /** * Load new configuration and suggest to apply it (only if it is changed) */ - fun ensureUpToDatedConfigurationSuggested(file: KtFile) { - reloadIfOutOfDate(file) + fun ensureUpToDatedConfigurationSuggested(file: KtFile, skipNotification: Boolean = false) { + reloadIfOutOfDate(file, skipNotification) } - private fun reloadIfOutOfDate(file: KtFile, isPostponedLoad: Boolean = false) { + private fun reloadIfOutOfDate(file: KtFile, skipNotification: Boolean = false) { if (!ScriptDefinitionsManager.getInstance(project).isReady()) return manager.updater.update { @@ -434,7 +436,8 @@ abstract class DefaultScriptingSupportBase(val manager: CompositeScriptConfigura if (state == null || !state.isUpToDate(project, virtualFile, file)) { reloadOutOfDateConfiguration( file, - isFirstLoad = state == null + isFirstLoad = state == null, + skipNotification = skipNotification ) } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt index a7efe624dd2..2d2441e477a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt @@ -397,7 +397,8 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(), if (virtualFile != null) { val ktFile = PsiManager.getInstance(project).findFile(virtualFile) as? KtFile if (ktFile != null) { - ScriptConfigurationManager.getInstance(project).getConfiguration(ktFile) + DefaultScriptingSupport.getInstance(project) + .ensureUpToDatedConfigurationSuggested(ktFile, skipNotification = true) } } }