Increase LibraryModificationTracker when external annotations are changed

Library cache is dropped when there are changes to external annotations
This commit is contained in:
Pavel V. Talanov
2014-10-03 15:05:53 +04:00
parent 95302fd540
commit 5e6619e368
@@ -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)