Increase LibraryModificationTracker when external annotations are changed
Library cache is dropped when there are changes to external annotations
This commit is contained in:
+11
@@ -26,6 +26,9 @@ import com.intellij.openapi.vfs.VirtualFileEvent
|
|||||||
import com.intellij.openapi.vfs.VirtualFileMoveEvent
|
import com.intellij.openapi.vfs.VirtualFileMoveEvent
|
||||||
import com.intellij.openapi.roots.ProjectFileIndex
|
import com.intellij.openapi.roots.ProjectFileIndex
|
||||||
import kotlin.platform.platformStatic
|
import kotlin.platform.platformStatic
|
||||||
|
import com.intellij.codeInsight.ExternalAnnotationsManager
|
||||||
|
import com.intellij.codeInsight.ExternalAnnotationsListener
|
||||||
|
import com.intellij.psi.PsiModifierListOwner
|
||||||
|
|
||||||
class LibraryModificationTracker(project: Project) : SimpleModificationTracker() {
|
class LibraryModificationTracker(project: Project) : SimpleModificationTracker() {
|
||||||
class object {
|
class object {
|
||||||
@@ -42,6 +45,14 @@ class LibraryModificationTracker(project: Project) : SimpleModificationTracker()
|
|||||||
override fun beforeFileDeletion(event: VirtualFileEvent) = processEvent(event)
|
override fun beforeFileDeletion(event: VirtualFileEvent) = processEvent(event)
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
|
||||||
|
connection.subscribe(ExternalAnnotationsManager.TOPIC, object : ExternalAnnotationsListener {
|
||||||
|
override fun afterExternalAnnotationChanging(owner: PsiModifierListOwner, annotationFQName: String, successful: Boolean) {
|
||||||
|
if (successful) incModificationCount()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun externalAnnotationsChangedExternally() = incModificationCount()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
val projectFileIndex = ProjectFileIndex.SERVICE.getInstance(project)
|
val projectFileIndex = ProjectFileIndex.SERVICE.getInstance(project)
|
||||||
|
|||||||
Reference in New Issue
Block a user