Minor: move files
This commit is contained in:
@@ -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
|
||||||
|
|||||||
+14
-3
@@ -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)
|
||||||
+4
-2
@@ -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
|
||||||
|
|
||||||
+47
-16
@@ -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
-1
@@ -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
-2
@@ -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
|
||||||
+6
-5
@@ -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
|
||||||
|
|
||||||
+1
-1
@@ -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
|
||||||
+1
-2
@@ -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
|
||||||
+6
-2
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user