Minor: change ScriptConfigurationCache.kt declarations order for better readability, more docs
This commit is contained in:
committed by
Natalia Selezneva
parent
fbb2b260dd
commit
61b17de625
+34
-30
@@ -11,6 +11,40 @@ import org.jetbrains.kotlin.psi.KtFile
|
|||||||
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
|
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
|
||||||
import kotlin.script.experimental.api.ScriptDiagnostic
|
import kotlin.script.experimental.api.ScriptDiagnostic
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cached configurations for the file's specific snapshot state.
|
||||||
|
*
|
||||||
|
* The writer should put related inputs snapshot for loaded configuration.
|
||||||
|
* This would allow making up-to-date checks for existed entry.
|
||||||
|
*
|
||||||
|
* The configuration may be loaded but not applied. So, it makes
|
||||||
|
* sense to do up-to-date check on loaded configuration (not on applied).
|
||||||
|
* For those reasons, we are storing both for each file.
|
||||||
|
*/
|
||||||
|
interface ScriptConfigurationCache {
|
||||||
|
operator fun get(file: VirtualFile): ScriptConfigurationState?
|
||||||
|
|
||||||
|
fun setApplied(file: VirtualFile, configurationSnapshot: ScriptConfigurationSnapshot)
|
||||||
|
fun setLoaded(file: VirtualFile, configurationSnapshot: ScriptConfigurationSnapshot)
|
||||||
|
fun markOutOfDate(file: VirtualFile)
|
||||||
|
|
||||||
|
fun allApplied(): Collection<Pair<VirtualFile, ScriptCompilationConfigurationWrapper>>
|
||||||
|
}
|
||||||
|
|
||||||
|
data class ScriptConfigurationState(
|
||||||
|
val applied: ScriptConfigurationSnapshot? = null,
|
||||||
|
val loaded: ScriptConfigurationSnapshot? = null
|
||||||
|
) {
|
||||||
|
fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile? = null): Boolean =
|
||||||
|
(loaded ?: applied)?.inputs?.isUpToDate(project, file, ktFile) ?: false
|
||||||
|
}
|
||||||
|
|
||||||
|
data class ScriptConfigurationSnapshot(
|
||||||
|
val inputs: CachedConfigurationInputs,
|
||||||
|
val reports: List<ScriptDiagnostic>,
|
||||||
|
val configuration: ScriptCompilationConfigurationWrapper?
|
||||||
|
)
|
||||||
|
|
||||||
interface CachedConfigurationInputs {
|
interface CachedConfigurationInputs {
|
||||||
fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile? = null): Boolean
|
fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile? = null): Boolean
|
||||||
|
|
||||||
@@ -22,34 +56,4 @@ interface CachedConfigurationInputs {
|
|||||||
override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean =
|
override fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile?): Boolean =
|
||||||
ktFile?.modificationStamp == modificationStamp
|
ktFile?.modificationStamp == modificationStamp
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
data class ScriptConfigurationSnapshot(
|
|
||||||
val inputs: CachedConfigurationInputs,
|
|
||||||
val reports: List<ScriptDiagnostic>,
|
|
||||||
val configuration: ScriptCompilationConfigurationWrapper?
|
|
||||||
)
|
|
||||||
|
|
||||||
data class ScriptConfigurationState(
|
|
||||||
val applied: ScriptConfigurationSnapshot? = null,
|
|
||||||
val loaded: ScriptConfigurationSnapshot? = null
|
|
||||||
) {
|
|
||||||
fun isUpToDate(project: Project, file: VirtualFile, ktFile: KtFile? = null): Boolean =
|
|
||||||
(loaded ?: applied)?.inputs?.isUpToDate(project, file, ktFile) ?: false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cached configurations for file's specific snapshot state.
|
|
||||||
*
|
|
||||||
* Writer should put related inputs snapshot for loaded configuration.
|
|
||||||
* Reader may do up-to-date check for existed entry.
|
|
||||||
*/
|
|
||||||
interface ScriptConfigurationCache {
|
|
||||||
operator fun get(file: VirtualFile): ScriptConfigurationState?
|
|
||||||
|
|
||||||
fun setApplied(file: VirtualFile, configurationSnapshot: ScriptConfigurationSnapshot)
|
|
||||||
fun setLoaded(file: VirtualFile, configurationSnapshot: ScriptConfigurationSnapshot)
|
|
||||||
fun markOutOfDate(file: VirtualFile)
|
|
||||||
|
|
||||||
fun allApplied(): Collection<Pair<VirtualFile, ScriptCompilationConfigurationWrapper>>
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user