diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.java index cb7cb1eeed01..5ae663aef0f4 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.java @@ -425,6 +425,8 @@ public class ChangesViewManager implements ChangesViewEx, if (myChangeProcessor != null) myChangeProcessor.fireDiffSettingsChanged(); }); + busConnection.subscribe(ChangesViewModifier.TOPIC, () -> scheduleRefresh()); + scheduleRefresh(); myDiffPreview.updatePreview(false); } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewModifier.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewModifier.java index c1fdb7f146bc..e65ac2fb7741 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewModifier.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewModifier.java @@ -3,13 +3,23 @@ package com.intellij.openapi.vcs.changes; import com.intellij.openapi.extensions.ProjectExtensionPointName; import com.intellij.openapi.vcs.changes.ui.ChangesViewModelBuilder; +import com.intellij.util.messages.Topic; import org.jetbrains.annotations.NotNull; +import java.util.EventListener; + /** * This extension point provides a plugin to modify parts of Local Changes. */ public interface ChangesViewModifier { ProjectExtensionPointName KEY = new ProjectExtensionPointName<>("com.intellij.vcs.changes.changesViewModifier"); + @Topic.ProjectLevel + Topic TOPIC = Topic.create("ChangesViewModifier update", ChangesViewModifierListener.class); + default void modifyTreeModelBuilder(@NotNull ChangesViewModelBuilder builder) { } + + interface ChangesViewModifierListener extends EventListener { + void updated(); + } } diff --git a/plugins/changeReminder/src/com/jetbrains/changeReminder/predict/PredictionService.kt b/plugins/changeReminder/src/com/jetbrains/changeReminder/predict/PredictionService.kt index 44f7843cbb73..a2507e224eba 100644 --- a/plugins/changeReminder/src/com/jetbrains/changeReminder/predict/PredictionService.kt +++ b/plugins/changeReminder/src/com/jetbrains/changeReminder/predict/PredictionService.kt @@ -51,7 +51,7 @@ internal class PredictionService(val project: Project) : Disposable { } }) { override fun inProgressChanged(value: Boolean) { - changesViewManager.scheduleRefresh() + project.messageBus.syncPublisher(ChangesViewModifier.TOPIC).updated() } } @@ -211,7 +211,7 @@ internal class PredictionService(val project: Project) : Disposable { private fun setPrediction(newPrediction: PredictionData) { predictionData = newPrediction - changesViewManager.scheduleRefresh() + project.messageBus.syncPublisher(ChangesViewModifier.TOPIC).updated() } override fun dispose() {