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.roots.ProjectFileIndex
|
||||
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 object {
|
||||
@@ -42,6 +45,14 @@ class LibraryModificationTracker(project: Project) : SimpleModificationTracker()
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user