gradle.kts, minor: cleanup & simplify code
This commit is contained in:
+11
-16
@@ -175,13 +175,14 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
|||||||
} else {
|
} else {
|
||||||
val autoReloadEnabled = KotlinScriptingSettings.getInstance(project).autoReloadConfigurations(scriptDefinition)
|
val autoReloadEnabled = KotlinScriptingSettings.getInstance(project).autoReloadConfigurations(scriptDefinition)
|
||||||
val postponeLoading = !autoReloadEnabled && async.any { it.isPostponedLoad(virtualFile) }
|
val postponeLoading = !autoReloadEnabled && async.any { it.isPostponedLoad(virtualFile) }
|
||||||
|
val forceSkipNotification = autoReloadEnabled || postponeLoading
|
||||||
|
|
||||||
if (postponeLoading) {
|
if (postponeLoading) {
|
||||||
LoadScriptConfigurationNotificationFactory.showNotification(virtualFile, project) {
|
LoadScriptConfigurationNotificationFactory.showNotification(virtualFile, project) {
|
||||||
runAsyncLoaders(file, virtualFile, scriptDefinition, async, isLoadingPostponed = true)
|
runAsyncLoaders(file, virtualFile, scriptDefinition, async, forceSkipNotification)
|
||||||
}
|
}
|
||||||
} else {
|
} 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,
|
virtualFile: VirtualFile,
|
||||||
scriptDefinition: ScriptDefinition,
|
scriptDefinition: ScriptDefinition,
|
||||||
loaders: List<ScriptConfigurationLoader>,
|
loaders: List<ScriptConfigurationLoader>,
|
||||||
isLoadingPostponed: Boolean
|
forceSkipNotification: Boolean
|
||||||
) {
|
) {
|
||||||
backgroundExecutor.ensureScheduled(virtualFile) {
|
backgroundExecutor.ensureScheduled(virtualFile) {
|
||||||
val cached = getCachedConfigurationState(virtualFile)
|
val cached = getCachedConfigurationState(virtualFile)
|
||||||
@@ -205,8 +206,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
|||||||
val applied = cached?.applied
|
val applied = cached?.applied
|
||||||
if (applied != null && applied.inputs.isUpToDate(project, virtualFile)) {
|
if (applied != null && applied.inputs.isUpToDate(project, virtualFile)) {
|
||||||
// in case user reverted to applied configuration
|
// in case user reverted to applied configuration
|
||||||
val skipNotification = isLoadingPostponed || KotlinScriptingSettings.getInstance(project).autoReloadConfigurations(scriptDefinition)
|
suggestOrSaveConfiguration(virtualFile, applied, forceSkipNotification)
|
||||||
suggestOrSaveConfiguration(virtualFile, applied, skipNotification)
|
|
||||||
} else if (cached == null || !cached.isUpToDate(project, virtualFile)) {
|
} else if (cached == null || !cached.isUpToDate(project, virtualFile)) {
|
||||||
// don't start loading if nothing was changed
|
// don't start loading if nothing was changed
|
||||||
// (in case we checking for up-to-date and loading concurrently)
|
// (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
|
val virtualFile = file.originalFile.virtualFile ?: return null
|
||||||
|
|
||||||
if (!ScriptDefinitionsManager.getInstance(project).isReady()) return null
|
if (!ScriptDefinitionsManager.getInstance(project).isReady()) return null
|
||||||
val scriptDefinition = file.findScriptDefinition() ?: return null
|
val scriptDefinition = file.findScriptDefinition() ?: return null
|
||||||
|
|
||||||
manager.updater.update {
|
manager.updater.update {
|
||||||
if (!loader.shouldRunInBackground(scriptDefinition)) {
|
loader.loadDependencies(false, file, scriptDefinition, loadingContext)
|
||||||
loader.loadDependencies(false, file, scriptDefinition, loadingContext)
|
|
||||||
} else {
|
|
||||||
backgroundExecutor.ensureScheduled(virtualFile) {
|
|
||||||
loader.loadDependencies(false, file, scriptDefinition, loadingContext)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return getAppliedConfiguration(virtualFile)?.configuration
|
return getAppliedConfiguration(virtualFile)?.configuration
|
||||||
@@ -259,7 +254,7 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
|||||||
private fun suggestOrSaveConfiguration(
|
private fun suggestOrSaveConfiguration(
|
||||||
file: VirtualFile,
|
file: VirtualFile,
|
||||||
newResult: ScriptConfigurationSnapshot,
|
newResult: ScriptConfigurationSnapshot,
|
||||||
skipNotification: Boolean
|
forceSkipNotification: Boolean
|
||||||
) {
|
) {
|
||||||
saveLock.withLock {
|
saveLock.withLock {
|
||||||
debug(file) { "configuration received = $newResult" }
|
debug(file) { "configuration received = $newResult" }
|
||||||
@@ -278,11 +273,11 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
|||||||
saveReports(file, newResult.reports)
|
saveReports(file, newResult.reports)
|
||||||
file.removeScriptDependenciesNotificationPanel(project)
|
file.removeScriptDependenciesNotificationPanel(project)
|
||||||
} else {
|
} else {
|
||||||
val autoReload = skipNotification
|
val skipNotification = forceSkipNotification
|
||||||
|| oldConfiguration == null
|
|| oldConfiguration == null
|
||||||
|| ApplicationManager.getApplication().isUnitTestModeWithoutScriptLoadingNotification
|
|| ApplicationManager.getApplication().isUnitTestModeWithoutScriptLoadingNotification
|
||||||
|
|
||||||
if (autoReload) {
|
if (skipNotification) {
|
||||||
if (oldConfiguration != null) {
|
if (oldConfiguration != null) {
|
||||||
file.removeScriptDependenciesNotificationPanel(project)
|
file.removeScriptDependenciesNotificationPanel(project)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -20,12 +20,10 @@ import org.jetbrains.kotlin.psi.KtFile
|
|||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
|
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
|
||||||
import org.jetbrains.kotlin.test.JUnitParameterizedWithIdeaConfigurationRunner
|
import org.jetbrains.kotlin.test.JUnitParameterizedWithIdeaConfigurationRunner
|
||||||
import org.jetbrains.kotlin.test.RunnerFactoryWithMuteInDatabase
|
|
||||||
import org.jetbrains.plugins.gradle.settings.GradleSettings
|
import org.jetbrains.plugins.gradle.settings.GradleSettings
|
||||||
import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions
|
import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.junit.runners.Parameterized
|
|
||||||
import org.junit.runners.Parameterized.Parameters
|
import org.junit.runners.Parameterized.Parameters
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -98,7 +96,7 @@ class GradleKtsImportTest : GradleImportingTestCase() {
|
|||||||
|
|
||||||
// reload configuration and check this it is not changed
|
// reload configuration and check this it is not changed
|
||||||
scripts.forEach {
|
scripts.forEach {
|
||||||
val reloadedConfiguration = scriptConfigurationManager.default.forceReloadConfiguration(
|
val reloadedConfiguration = scriptConfigurationManager.default.runLoader(
|
||||||
it.psiFile,
|
it.psiFile,
|
||||||
object : DefaultScriptConfigurationLoader(it.psiFile.project) {
|
object : DefaultScriptConfigurationLoader(it.psiFile.project) {
|
||||||
override fun shouldRunInBackground(scriptDefinition: ScriptDefinition) = false
|
override fun shouldRunInBackground(scriptDefinition: ScriptDefinition) = false
|
||||||
|
|||||||
Reference in New Issue
Block a user