Minor: move files

This commit is contained in:
Natalia Selezneva
2019-10-30 13:09:12 +03:00
parent 9f3c2d0292
commit 33475f30bc
11 changed files with 87 additions and 35 deletions
@@ -28,6 +28,7 @@ import com.intellij.psi.search.GlobalSearchScope
import com.intellij.util.io.URLUtil import com.intellij.util.io.URLUtil
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.caches.project.getAllProjectSdks 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.psi.KtFile
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationResult import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationResult
@@ -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. * 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.codeInsight.daemon.DaemonCodeAnalyzer
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
@@ -19,8 +19,18 @@ import com.intellij.ui.EditorNotifications
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.jetbrains.annotations.TestOnly 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.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.script.settings.KotlinScriptingSettings
import org.jetbrains.kotlin.idea.core.util.EDT import org.jetbrains.kotlin.idea.core.util.EDT
import org.jetbrains.kotlin.psi.KtFile 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.ScriptDiagnostic
import kotlin.script.experimental.api.valueOrNull 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 rootsManager = ScriptClassRootsManager(project)
private val memoryCache = ScriptConfigurationMemoryCache(project) private val memoryCache = ScriptConfigurationMemoryCache(project)
@@ -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. * 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 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.script.debug
import org.jetbrains.kotlin.idea.core.util.* import org.jetbrains.kotlin.idea.core.util.*
import org.jetbrains.kotlin.psi.KtFile 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.api.asSuccess
import kotlin.script.experimental.dependencies.ScriptDependencies import kotlin.script.experimental.dependencies.ScriptDependencies
class ScriptConfigurationFileAttributeCache : ScriptDependenciesLoader { class ScriptConfigurationFileAttributeCache :
ScriptDependenciesLoader {
operator fun contains(file: VirtualFile): Boolean = operator fun contains(file: VirtualFile): Boolean =
file.scriptDependencies != null || file.scriptCompilationConfiguration != null file.scriptDependencies != null || file.scriptCompilationConfiguration != null
@@ -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. * 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.ProjectTopics
import com.intellij.openapi.extensions.Extensions 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.ConcurrentFactoryMap
import com.intellij.util.containers.SLRUMap import com.intellij.util.containers.SLRUMap
import org.jetbrains.kotlin.idea.caches.project.getAllProjectSdks 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.idea.util.application.runReadAction
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper 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 cacheLock = ReentrantReadWriteLock()
private val scriptDependenciesCache = SLRUCacheWithLock<VirtualFile, ScriptCompilationConfigurationWrapper>() private val scriptDependenciesCache =
private val scriptsModificationStampsCache = SLRUCacheWithLock<VirtualFile, Long>() SLRUCacheWithLock<VirtualFile, ScriptCompilationConfigurationWrapper>()
private val scriptsModificationStampsCache =
SLRUCacheWithLock<VirtualFile, Long>()
fun getCachedConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? = scriptDependenciesCache.get(file) fun getCachedConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? = scriptDependenciesCache.get(file)
@@ -78,7 +84,11 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P
@Suppress("FoldInitializerAndIfToElvis") @Suppress("FoldInitializerAndIfToElvis")
if (sdk == null) { if (sdk == null) {
return@createWeakMap NonClasspathDirectoriesScope.compose(ScriptConfigurationManager.toVfsRoots(roots)) return@createWeakMap NonClasspathDirectoriesScope.compose(
ScriptConfigurationManager.toVfsRoots(
roots
)
)
} }
return@createWeakMap NonClasspathDirectoriesScope.compose( return@createWeakMap NonClasspathDirectoriesScope.compose(
@@ -90,7 +100,9 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P
val scriptsSdksCache: MutableMap<VirtualFile, Sdk?> = val scriptsSdksCache: MutableMap<VirtualFile, Sdk?> =
ConcurrentFactoryMap.createWeakMap { file -> ConcurrentFactoryMap.createWeakMap { file ->
val compilationConfiguration = getConfiguration(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? { private fun getConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? {
@@ -99,7 +111,8 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P
if (configuration != null) return configuration if (configuration != null) return configuration
val ktFile = runReadAction { PsiManager.getInstance(project).findFile(file) as? KtFile } ?: return null 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? { private fun getScriptSdk(compilationConfiguration: ScriptCompilationConfigurationWrapper?): Sdk? {
@@ -125,21 +138,27 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P
.distinct() .distinct()
} }
private val allNonIndexedSdks by ClearableLazyValue(cacheLock) { private val allNonIndexedSdks by ClearableLazyValue(
cacheLock
) {
scriptDependenciesCache.getAll() scriptDependenciesCache.getAll()
.mapNotNull { scriptsSdksCache[it.key] } .mapNotNull { scriptsSdksCache[it.key] }
.filterNonModuleSdk() .filterNonModuleSdk()
.distinct() .distinct()
} }
val allDependenciesClassFiles by ClearableLazyValue(cacheLock) { val allDependenciesClassFiles by ClearableLazyValue(
cacheLock
) {
val sdkFiles = allNonIndexedSdks val sdkFiles = allNonIndexedSdks
.flatMap { it.rootProvider.getFiles(OrderRootType.CLASSES).toList() } .flatMap { it.rootProvider.getFiles(OrderRootType.CLASSES).toList() }
val scriptDependenciesClasspath = scriptDependenciesCache.getAll() val scriptDependenciesClasspath = scriptDependenciesCache.getAll()
.flatMap { it.value.dependenciesClassPath }.distinct() .flatMap { it.value.dependenciesClassPath }.distinct()
sdkFiles + ScriptConfigurationManager.toVfsRoots(scriptDependenciesClasspath) sdkFiles + ScriptConfigurationManager.toVfsRoots(
scriptDependenciesClasspath
)
} }
val allDependenciesSources by ClearableLazyValue(cacheLock) { val allDependenciesSources by ClearableLazyValue(cacheLock) {
@@ -148,14 +167,20 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P
val scriptDependenciesSources = scriptDependenciesCache.getAll() val scriptDependenciesSources = scriptDependenciesCache.getAll()
.flatMap { it.value.dependenciesSources }.distinct() .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) NonClasspathDirectoriesScope.compose(allDependenciesClassFiles)
} }
val allDependenciesSourcesScope by ClearableLazyValue(cacheLock) { val allDependenciesSourcesScope by ClearableLazyValue(
cacheLock
) {
NonClasspathDirectoriesScope.compose(allDependenciesSources) NonClasspathDirectoriesScope.compose(allDependenciesSources)
} }
@@ -201,14 +226,18 @@ class ScriptConfigurationMemoryCache internal constructor(private val project: P
} }
fun hasNotCachedRoots(compilationConfiguration: ScriptCompilationConfigurationWrapper): Boolean { 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) val wasSdkChanged = scriptSdk != null && !allSdks.contains(scriptSdk)
if (wasSdkChanged) { if (wasSdkChanged) {
debug { "sdk was changed: $compilationConfiguration" } debug { "sdk was changed: $compilationConfiguration" }
return true return true
} }
val newClassRoots = ScriptConfigurationManager.toVfsRoots(compilationConfiguration.dependenciesClassPath) val newClassRoots = ScriptConfigurationManager.toVfsRoots(
compilationConfiguration.dependenciesClassPath
)
for (newClassRoot in newClassRoots) { for (newClassRoot in newClassRoots) {
if (!allDependenciesClassFiles.contains(newClassRoot)) { if (!allDependenciesClassFiles.contains(newClassRoot)) {
debug { "class root was changed: $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) { for (newSourceRoot in newSourceRoots) {
if (!allDependenciesSources.contains(newSourceRoot)) { if (!allDependenciesSources.contains(newSourceRoot)) {
debug { "source root was changed: $newSourceRoot" } debug { "source root was changed: $newSourceRoot" }
@@ -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. * 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.application.ApplicationManager
import com.intellij.openapi.editor.EditorFactory 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.openapi.vfs.VirtualFile
import com.intellij.psi.PsiManager import com.intellij.psi.PsiManager
import com.intellij.util.Alarm 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.idea.util.ProjectRootsUtil
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.scripting.definitions.isNonScript import org.jetbrains.kotlin.scripting.definitions.isNonScript
@@ -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. * 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.idea.core.script.debug
import org.jetbrains.kotlin.psi.KtFile 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 org.jetbrains.kotlin.scripting.resolve.refineScriptCompilationConfiguration
import kotlin.script.experimental.dependencies.AsyncDependenciesResolver import kotlin.script.experimental.dependencies.AsyncDependenciesResolver
class FromRefinedConfigurationLoader internal constructor() : ScriptDependenciesLoader { class FromRefinedConfigurationLoader internal constructor() :
ScriptDependenciesLoader {
override fun isAsync(file: KtFile, scriptDefinition: ScriptDefinition): Boolean { override fun isAsync(file: KtFile, scriptDefinition: ScriptDefinition): Boolean {
return scriptDefinition.asLegacyOrNull<KotlinScriptDefinition>()?.dependencyResolver?.let { return scriptDefinition.asLegacyOrNull<KotlinScriptDefinition>()?.dependencyResolver?.let {
it is AsyncDependenciesResolver || it is LegacyResolverWrapper it is AsyncDependenciesResolver || it is LegacyResolverWrapper
@@ -1,19 +1,20 @@
/* /*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* that can be found in the license/LICENSE.txt file. * 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 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.idea.highlighter.OutsidersPsiFileSupportUtils
import org.jetbrains.kotlin.psi.KtFile 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.ScriptCompilationConfigurationResult import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationResult
import kotlin.script.experimental.api.asSuccess import kotlin.script.experimental.api.asSuccess
class OutsiderFileDependenciesLoader(private val manager: ScriptConfigurationManagerImpl) : ScriptDependenciesLoader { class OutsiderFileDependenciesLoader(private val manager: ScriptConfigurationManagerImpl) :
ScriptDependenciesLoader {
override val skipSaveToAttributes: Boolean override val skipSaveToAttributes: Boolean
get() = true get() = true
@@ -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. * 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.psi.KtFile
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
@@ -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. * 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.EmptyProgressIndicator
import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.progress.util.BackgroundTaskUtil import com.intellij.openapi.progress.util.BackgroundTaskUtil
import com.intellij.openapi.project.Project 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.debug
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
@@ -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. * 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.ApplicationManager
import com.intellij.openapi.application.TransactionGuard 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.roots.ex.ProjectRootManagerEx
import com.intellij.openapi.util.EmptyRunnable import com.intellij.openapi.util.EmptyRunnable
import com.intellij.openapi.vfs.VirtualFile 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.idea.util.application.runWriteAction
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
import java.util.concurrent.atomic.AtomicInteger import java.util.concurrent.atomic.AtomicInteger
@@ -74,7 +77,8 @@ internal class ScriptClassRootsManager(val project: Project) {
debug { "roots change event" } debug { "roots change event" }
ProjectRootManagerEx.getInstanceEx(project)?.makeRootsChange(EmptyRunnable.getInstance(), false, true) ProjectRootManagerEx.getInstanceEx(project)?.makeRootsChange(EmptyRunnable.getInstance(), false, true)
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount() ScriptDependenciesModificationTracker.getInstance(project)
.incModificationCount()
} }
} }
+1 -1
View File
@@ -308,7 +308,7 @@
serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptDependenciesProvider"/> serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptDependenciesProvider"/>
<projectService serviceInterface="org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager" <projectService serviceInterface="org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManagerImpl"/> serviceImplementation="org.jetbrains.kotlin.idea.core.script.configuration.ScriptConfigurationManagerImpl"/>
<projectService serviceInterface="org.jetbrains.kotlin.scripting.resolve.ScriptReportSink" <projectService serviceInterface="org.jetbrains.kotlin.scripting.resolve.ScriptReportSink"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink"/> serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink"/>