From 478629edc95254a8b1153c241ea64c3efeb8299b Mon Sep 17 00:00:00 2001 From: Alexander Trushev Date: Wed, 4 Jun 2025 17:10:36 +0200 Subject: [PATCH] [rd-editor] IJPL-185748 Frontend speculative undo/redo GitOrigin-RevId: 228e1cfb8e07877664d1c1a1e46c08d2928026e8 --- .../com/intellij/openapi/command/impl/UndoClientState.java | 4 +++- .../src/com/intellij/openapi/command/impl/UndoSpy.kt | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoClientState.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoClientState.java index f9b4a223825b..3609665e9c27 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoClientState.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoClientState.java @@ -519,7 +519,9 @@ final class UndoClientState implements Disposable { private void addUndoableAction(@NotNull UndoableAction action) { addActionToSharedStack(action); currentCommandMerger.addAction(action); - undoSpy.addUndoableAction(action, UndoableActionType.forAction(action)); + if (!(currentProject instanceof DummyProject)) { + undoSpy.addUndoableAction(currentProject, action, UndoableActionType.forAction(action)); + } } private void clearRedoStacks(@NotNull CommandMerger nextMerger) { diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoSpy.kt b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoSpy.kt index 55b5035b0e73..cc56fc19fd76 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoSpy.kt +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoSpy.kt @@ -20,6 +20,7 @@ interface UndoSpy { ) fun addUndoableAction( + project: Project?, action: UndoableAction, type: UndoableActionType, ) @@ -37,7 +38,7 @@ interface UndoSpy { @JvmField val BLIND: UndoSpy = object : UndoSpy { override fun commandStarted(project: Project?, undoConfirmationPolicy: UndoConfirmationPolicy) {} - override fun addUndoableAction(action: UndoableAction, type: UndoableActionType) {} + override fun addUndoableAction(project: Project?, action: UndoableAction, type: UndoableActionType) {} override fun commandFinished(project: Project?, commandName: @Command String?, commandGroupId: Any?, isTransparent: Boolean) {} override fun flushCommand(project: Project?) {} }