From 8f427503f476f52ef588567269959ae2b4cac12a Mon Sep 17 00:00:00 2001 From: Alexander Trushev Date: Mon, 12 Jan 2026 19:49:39 +0100 Subject: [PATCH] [undo] IJPL-201535 Prepare `FrontendCallActionRequest` to perform an action on BE side inside FE command GitOrigin-RevId: c17e88c50b0c502916064056f58d94f967baeb55 --- .../src/com/intellij/openapi/command/impl/CommandMerger.java | 3 ++- .../src/com/intellij/openapi/command/impl/UndoSpy.kt | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java index 1dd1285a3a99..90e34f66d7f0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java @@ -104,8 +104,9 @@ public final class CommandMerger { } void mergeWithPerformedCommand(@NotNull PerformedCommand performedCommand) { + boolean isPartial = isPartialForeignCommand(performedCommand); mergeState(performedCommand); - if (!performedCommand.isTransparent() && hasActions()) { + if (!performedCommand.isTransparent() && (hasActions() || isPartial)) { Object groupId = performedCommand.groupId(); if (groupId != SoftReference.dereference(lastGroupId)) { lastGroupId = groupId == null ? null : new WeakReference<>(groupId); 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 a04f71491ead..b72dcd6da647 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 @@ -19,6 +19,8 @@ interface UndoSpy { fun commandFinished(cmdFinishEvent: CmdEvent) + fun currentCmdEvent(): CmdEvent? + fun withBlind(action: () -> T): T companion object {