Use file.modificationStamp to invalidate caches for synthetic files
It previously worked because of updating all counters. That behaviour was removed in https://github.com/JetBrains/intellij-community/commit/3b860d69ee1b32b210ddf88b1e042dd70ea87cd9. getUserData(FILE_OUT_OF_BLOCK_MODIFICATION_COUNT) is probably useless because copied file has isEventSystemEnabled() == false that prevents sending notifications about PSI changes. This need additional checks.
This commit is contained in:
+2
-1
@@ -137,7 +137,8 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
val syntheticFileModule = files.map { it.getModuleInfo() }.toSet().single()
|
||||
val sdk = syntheticFileModule.sdk
|
||||
val filesModificationTracker = ModificationTracker {
|
||||
files.sumByLong { it.outOfBlockModificationCount }
|
||||
// TODO: Check getUserData(FILE_OUT_OF_BLOCK_MODIFICATION_COUNT) actually works
|
||||
files.sumByLong { it.outOfBlockModificationCount + it.modificationStamp }
|
||||
}
|
||||
val dependenciesForSyntheticFileCache = listOf(PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, filesModificationTracker)
|
||||
val debugName = "completion/highlighting in $syntheticFileModule for files ${files.joinToString { it.name }} for platform $targetPlatform"
|
||||
|
||||
Reference in New Issue
Block a user