From a2427c64a10e4229c06fef1b4446fa8d6bd5f2cf Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 14 Jun 2017 17:52:14 +0200 Subject: [PATCH] Reset library caches on file types change and dumb mode enter/exit Ref: https://github.com/JetBrains/intellij-community/commit/50df476199043bde25b8220c8a8ff2f3545bd325 --- .../resolve/LibraryModificationTracker.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/LibraryModificationTracker.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/LibraryModificationTracker.kt index ea43976a030..0ff72e45fcb 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/LibraryModificationTracker.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/LibraryModificationTracker.kt @@ -19,6 +19,10 @@ package org.jetbrains.kotlin.idea.caches.resolve import com.intellij.ide.highlighter.ArchiveFileType import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.ServiceManager +import com.intellij.openapi.fileTypes.FileTypeEvent +import com.intellij.openapi.fileTypes.FileTypeListener +import com.intellij.openapi.fileTypes.FileTypeManager +import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.openapi.util.SimpleModificationTracker @@ -60,6 +64,26 @@ class LibraryModificationTracker(project: Project) : SimpleModificationTracker() } } }) + + connection.subscribe(DumbService.DUMB_MODE, object : DumbService.DumbModeListener { + override fun enteredDumbMode() { + incModificationCount() + } + + override fun exitDumbMode() { + incModificationCount() + } + }) + + connection.subscribe(FileTypeManager.TOPIC, object : FileTypeListener { + override fun beforeFileTypesChanged(event: FileTypeEvent) { + incModificationCount() + } + + override fun fileTypesChanged(event: FileTypeEvent) { + incModificationCount() + } + }) } private val projectFileIndex = ProjectFileIndex.SERVICE.getInstance(project)