diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManager.kt index 15244664d6c..e59bb19ddf3 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManager.kt @@ -28,6 +28,7 @@ import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.io.URLUtil import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.idea.caches.project.getAllProjectSdks +import org.jetbrains.kotlin.idea.core.script.configuration.ScriptConfigurationManagerImpl import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationResult diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManagerImpl.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/ScriptConfigurationManagerImpl.kt similarity index 93% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManagerImpl.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/ScriptConfigurationManagerImpl.kt index 28cd106243f..7386d8e584a 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationManagerImpl.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/ScriptConfigurationManagerImpl.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script +package org.jetbrains.kotlin.idea.core.script.configuration import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer import com.intellij.openapi.application.ApplicationManager @@ -19,8 +19,18 @@ import com.intellij.ui.EditorNotifications import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.jetbrains.annotations.TestOnly +import org.jetbrains.kotlin.idea.core.script.* +import org.jetbrains.kotlin.idea.core.script.LOG import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager.Companion.toVfsRoots -import org.jetbrains.kotlin.idea.core.script.dependencies.* +import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationFileAttributeCache +import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationMemoryCache +import org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptsListener +import org.jetbrains.kotlin.idea.core.script.configuration.loader.FromRefinedConfigurationLoader +import org.jetbrains.kotlin.idea.core.script.configuration.loader.OutsiderFileDependenciesLoader +import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptDependenciesLoader +import org.jetbrains.kotlin.idea.core.script.configuration.utils.BackgroundLoader +import org.jetbrains.kotlin.idea.core.script.configuration.utils.ScriptClassRootsManager +import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings import org.jetbrains.kotlin.idea.core.util.EDT import org.jetbrains.kotlin.psi.KtFile @@ -33,7 +43,8 @@ import org.jetbrains.kotlin.scripting.resolve.ScriptReportSink import kotlin.script.experimental.api.ScriptDiagnostic import kotlin.script.experimental.api.valueOrNull -class ScriptConfigurationManagerImpl internal constructor(private val project: Project) : ScriptConfigurationManager { +class ScriptConfigurationManagerImpl internal constructor(private val project: Project) : + ScriptConfigurationManager { private val rootsManager = ScriptClassRootsManager(project) private val memoryCache = ScriptConfigurationMemoryCache(project) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptConfigurationFileAttributeCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt similarity index 95% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptConfigurationFileAttributeCache.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt index 619992a1211..01cc0367d2a 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptConfigurationFileAttributeCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationFileAttributeCache.kt @@ -3,9 +3,10 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script.dependencies +package org.jetbrains.kotlin.idea.core.script.configuration.cache import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptDependenciesLoader import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.idea.core.util.* import org.jetbrains.kotlin.psi.KtFile @@ -20,7 +21,8 @@ import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.asSuccess import kotlin.script.experimental.dependencies.ScriptDependencies -class ScriptConfigurationFileAttributeCache : ScriptDependenciesLoader { +class ScriptConfigurationFileAttributeCache : + ScriptDependenciesLoader { operator fun contains(file: VirtualFile): Boolean = file.scriptDependencies != null || file.scriptCompilationConfiguration != null diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationMemoryCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt similarity index 84% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationMemoryCache.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt index 46e4d02ca7d..1898c8c5e62 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptConfigurationMemoryCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/cache/ScriptConfigurationMemoryCache.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script +package org.jetbrains.kotlin.idea.core.script.configuration.cache import com.intellij.ProjectTopics import com.intellij.openapi.extensions.Extensions @@ -23,7 +23,11 @@ import com.intellij.psi.search.NonClasspathDirectoriesScope import com.intellij.util.containers.ConcurrentFactoryMap import com.intellij.util.containers.SLRUMap import org.jetbrains.kotlin.idea.caches.project.getAllProjectSdks -import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationMemoryCache.Companion.MAX_SCRIPTS_CACHED +import org.jetbrains.kotlin.idea.core.script.KotlinScriptDependenciesClassFinder +import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager +import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker +import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationMemoryCache.Companion.MAX_SCRIPTS_CACHED +import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper @@ -51,8 +55,10 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P private val cacheLock = ReentrantReadWriteLock() - private val scriptDependenciesCache = SLRUCacheWithLock() - private val scriptsModificationStampsCache = SLRUCacheWithLock() + private val scriptDependenciesCache = + SLRUCacheWithLock() + private val scriptsModificationStampsCache = + SLRUCacheWithLock() fun getCachedConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? = scriptDependenciesCache.get(file) @@ -78,7 +84,11 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P @Suppress("FoldInitializerAndIfToElvis") if (sdk == null) { - return@createWeakMap NonClasspathDirectoriesScope.compose(ScriptConfigurationManager.toVfsRoots(roots)) + return@createWeakMap NonClasspathDirectoriesScope.compose( + ScriptConfigurationManager.toVfsRoots( + roots + ) + ) } return@createWeakMap NonClasspathDirectoriesScope.compose( @@ -90,7 +100,9 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P val scriptsSdksCache: MutableMap = ConcurrentFactoryMap.createWeakMap { file -> val compilationConfiguration = getConfiguration(file) - return@createWeakMap getScriptSdk(compilationConfiguration) ?: ScriptConfigurationManager.getScriptDefaultSdk(project) + return@createWeakMap getScriptSdk(compilationConfiguration) ?: ScriptConfigurationManager.getScriptDefaultSdk( + project + ) } private fun getConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? { @@ -99,7 +111,8 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P if (configuration != null) return configuration val ktFile = runReadAction { PsiManager.getInstance(project).findFile(file) as? KtFile } ?: return null - return ScriptConfigurationManager.getInstance(project).getConfiguration(ktFile) + return ScriptConfigurationManager.getInstance(project) + .getConfiguration(ktFile) } private fun getScriptSdk(compilationConfiguration: ScriptCompilationConfigurationWrapper?): Sdk? { @@ -125,21 +138,27 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P .distinct() } - private val allNonIndexedSdks by ClearableLazyValue(cacheLock) { + private val allNonIndexedSdks by ClearableLazyValue( + cacheLock + ) { scriptDependenciesCache.getAll() .mapNotNull { scriptsSdksCache[it.key] } .filterNonModuleSdk() .distinct() } - val allDependenciesClassFiles by ClearableLazyValue(cacheLock) { + val allDependenciesClassFiles by ClearableLazyValue( + cacheLock + ) { val sdkFiles = allNonIndexedSdks .flatMap { it.rootProvider.getFiles(OrderRootType.CLASSES).toList() } val scriptDependenciesClasspath = scriptDependenciesCache.getAll() .flatMap { it.value.dependenciesClassPath }.distinct() - sdkFiles + ScriptConfigurationManager.toVfsRoots(scriptDependenciesClasspath) + sdkFiles + ScriptConfigurationManager.toVfsRoots( + scriptDependenciesClasspath + ) } val allDependenciesSources by ClearableLazyValue(cacheLock) { @@ -148,14 +167,20 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P val scriptDependenciesSources = scriptDependenciesCache.getAll() .flatMap { it.value.dependenciesSources }.distinct() - sdkSources + ScriptConfigurationManager.toVfsRoots(scriptDependenciesSources) + sdkSources + ScriptConfigurationManager.toVfsRoots( + scriptDependenciesSources + ) } - val allDependenciesClassFilesScope by ClearableLazyValue(cacheLock) { + val allDependenciesClassFilesScope by ClearableLazyValue( + cacheLock + ) { NonClasspathDirectoriesScope.compose(allDependenciesClassFiles) } - val allDependenciesSourcesScope by ClearableLazyValue(cacheLock) { + val allDependenciesSourcesScope by ClearableLazyValue( + cacheLock + ) { NonClasspathDirectoriesScope.compose(allDependenciesSources) } @@ -201,14 +226,18 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P } fun hasNotCachedRoots(compilationConfiguration: ScriptCompilationConfigurationWrapper): Boolean { - val scriptSdk = getScriptSdk(compilationConfiguration) ?: ScriptConfigurationManager.getScriptDefaultSdk(project) + val scriptSdk = getScriptSdk(compilationConfiguration) ?: ScriptConfigurationManager.getScriptDefaultSdk( + project + ) val wasSdkChanged = scriptSdk != null && !allSdks.contains(scriptSdk) if (wasSdkChanged) { debug { "sdk was changed: $compilationConfiguration" } return true } - val newClassRoots = ScriptConfigurationManager.toVfsRoots(compilationConfiguration.dependenciesClassPath) + val newClassRoots = ScriptConfigurationManager.toVfsRoots( + compilationConfiguration.dependenciesClassPath + ) for (newClassRoot in newClassRoots) { if (!allDependenciesClassFiles.contains(newClassRoot)) { debug { "class root was changed: $newClassRoot" } @@ -216,7 +245,9 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P } } - val newSourceRoots = ScriptConfigurationManager.toVfsRoots(compilationConfiguration.dependenciesSources) + val newSourceRoots = ScriptConfigurationManager.toVfsRoots( + compilationConfiguration.dependenciesSources + ) for (newSourceRoot in newSourceRoots) { if (!allDependenciesSources.contains(newSourceRoot)) { debug { "source root was changed: $newSourceRoot" } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptsListener.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/listener/ScriptsListener.kt similarity index 93% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptsListener.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/listener/ScriptsListener.kt index 9e56f7f51d9..3a86af46671 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptsListener.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/listener/ScriptsListener.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script +package org.jetbrains.kotlin.idea.core.script.configuration.listener import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.editor.EditorFactory @@ -17,6 +17,8 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiManager import com.intellij.util.Alarm +import org.jetbrains.kotlin.idea.core.script.configuration.ScriptConfigurationManagerImpl +import org.jetbrains.kotlin.idea.core.script.isScriptDependenciesUpdaterDisabled import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.isNonScript diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/FromRefinedConfigurationLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/FromRefinedConfigurationLoader.kt similarity index 90% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/FromRefinedConfigurationLoader.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/FromRefinedConfigurationLoader.kt index 6cb96853adc..348fbce6344 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/FromRefinedConfigurationLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/FromRefinedConfigurationLoader.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script.dependencies +package org.jetbrains.kotlin.idea.core.script.configuration.loader import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.psi.KtFile @@ -15,7 +15,8 @@ import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationResu import org.jetbrains.kotlin.scripting.resolve.refineScriptCompilationConfiguration import kotlin.script.experimental.dependencies.AsyncDependenciesResolver -class FromRefinedConfigurationLoader internal constructor() : ScriptDependenciesLoader { +class FromRefinedConfigurationLoader internal constructor() : + ScriptDependenciesLoader { override fun isAsync(file: KtFile, scriptDefinition: ScriptDefinition): Boolean { return scriptDefinition.asLegacyOrNull()?.dependencyResolver?.let { it is AsyncDependenciesResolver || it is LegacyResolverWrapper diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/OutsiderFileDependenciesLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/OutsiderFileDependenciesLoader.kt similarity index 72% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/OutsiderFileDependenciesLoader.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/OutsiderFileDependenciesLoader.kt index 06131f19dbf..ad12aeee2f9 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/OutsiderFileDependenciesLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/OutsiderFileDependenciesLoader.kt @@ -1,19 +1,20 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script.dependencies +package org.jetbrains.kotlin.idea.core.script.configuration.loader import com.intellij.psi.PsiManager -import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManagerImpl +import org.jetbrains.kotlin.idea.core.script.configuration.ScriptConfigurationManagerImpl import org.jetbrains.kotlin.idea.highlighter.OutsidersPsiFileSupportUtils import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationResult import kotlin.script.experimental.api.asSuccess -class OutsiderFileDependenciesLoader(private val manager: ScriptConfigurationManagerImpl) : ScriptDependenciesLoader { +class OutsiderFileDependenciesLoader(private val manager: ScriptConfigurationManagerImpl) : + ScriptDependenciesLoader { override val skipSaveToAttributes: Boolean get() = true diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptDependenciesLoader.kt similarity index 92% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptDependenciesLoader.kt index 5be80fe45fa..9eee0129beb 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/ScriptDependenciesLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/ScriptDependenciesLoader.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script.dependencies +package org.jetbrains.kotlin.idea.core.script.configuration.loader import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/BackgroundLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/BackgroundLoader.kt similarity index 96% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/BackgroundLoader.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/BackgroundLoader.kt index ddf8f614ce5..b0667e44776 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/dependencies/BackgroundLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/BackgroundLoader.kt @@ -3,13 +3,12 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script.dependencies +package org.jetbrains.kotlin.idea.core.script.configuration.utils import com.intellij.openapi.progress.EmptyProgressIndicator import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.util.BackgroundTaskUtil import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.idea.core.script.ScriptClassRootsManager import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings import org.jetbrains.kotlin.psi.KtFile diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptClassRootsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsManager.kt similarity index 89% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptClassRootsManager.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsManager.kt index 6e5c2e8c9c6..75f4ad42093 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptClassRootsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsManager.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.core.script +package org.jetbrains.kotlin.idea.core.script.configuration.utils import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.TransactionGuard @@ -11,6 +11,9 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ex.ProjectRootManagerEx import com.intellij.openapi.util.EmptyRunnable import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker +import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationMemoryCache +import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper import java.util.concurrent.atomic.AtomicInteger @@ -74,7 +77,8 @@ internal class ScriptClassRootsManager(val project: Project) { debug { "roots change event" } ProjectRootManagerEx.getInstanceEx(project)?.makeRootsChange(EmptyRunnable.getInstance(), false, true) - ScriptDependenciesModificationTracker.getInstance(project).incModificationCount() + ScriptDependenciesModificationTracker.getInstance(project) + .incModificationCount() } } diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index 8100face1e2..2cfa90b71e4 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -308,7 +308,7 @@ serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptDependenciesProvider"/> + serviceImplementation="org.jetbrains.kotlin.idea.core.script.configuration.ScriptConfigurationManagerImpl"/>