ScriptConfigurationManager, outsider files: search in roots cache too
This commit is contained in:
+9
-1
@@ -179,8 +179,16 @@ class DefaultScriptingSupport(manager: CompositeScriptConfigurationManager) : De
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val loadingContext = object : ScriptConfigurationLoadingContext {
|
private val loadingContext = object : ScriptConfigurationLoadingContext {
|
||||||
|
/**
|
||||||
|
* Used from [ScriptOutsiderFileConfigurationLoader] only.
|
||||||
|
*/
|
||||||
override fun getCachedConfiguration(file: VirtualFile): ScriptConfigurationSnapshot? =
|
override fun getCachedConfiguration(file: VirtualFile): ScriptConfigurationSnapshot? =
|
||||||
getAppliedConfiguration(file)
|
getAppliedConfiguration(file) ?: getFromGlobalCache(file)
|
||||||
|
|
||||||
|
private fun getFromGlobalCache(file: VirtualFile): ScriptConfigurationSnapshot? {
|
||||||
|
val info = manager.getLightScriptInfo(file.path) ?: return null
|
||||||
|
return ScriptConfigurationSnapshot(CachedConfigurationInputs.UpToDate, listOf(), info.buildConfiguration())
|
||||||
|
}
|
||||||
|
|
||||||
override fun suggestNewConfiguration(file: VirtualFile, newResult: ScriptConfigurationSnapshot) {
|
override fun suggestNewConfiguration(file: VirtualFile, newResult: ScriptConfigurationSnapshot) {
|
||||||
suggestOrSaveConfiguration(file, newResult, false)
|
suggestOrSaveConfiguration(file, newResult, false)
|
||||||
|
|||||||
+4
@@ -63,6 +63,10 @@ interface CachedConfigurationInputs: Serializable {
|
|||||||
override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean = false
|
override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object UpToDate: CachedConfigurationInputs {
|
||||||
|
override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean = true
|
||||||
|
}
|
||||||
|
|
||||||
data class PsiModificationStamp(
|
data class PsiModificationStamp(
|
||||||
val fileModificationStamp: Long,
|
val fileModificationStamp: Long,
|
||||||
val psiModificationStamp: Long
|
val psiModificationStamp: Long
|
||||||
|
|||||||
Reference in New Issue
Block a user