From 75dadc9610cdb84ac92536220fb46e5217a3f47e Mon Sep 17 00:00:00 2001 From: Filipp Vakhitov <filipp.vakhitov@jetbrains.com> Date: Tue, 25 Feb 2025 15:09:41 +0200 Subject: [PATCH] Fix(VIM-3802): Completion should create undo checkpoint Do not create checkpoints for Enter keypress --- src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt b/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt index 0c2839de7..f155bb188 100644 --- a/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt +++ b/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt @@ -28,6 +28,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys import com.intellij.openapi.actionSystem.ex.AnActionListener import com.intellij.openapi.actionSystem.impl.ProxyShortcutSet import com.intellij.openapi.editor.Editor +import com.intellij.openapi.editor.actions.EnterAction import com.intellij.openapi.keymap.KeymapManager import com.intellij.openapi.project.DumbAwareToggleAction import com.intellij.openapi.util.TextRange @@ -71,7 +72,7 @@ internal object IdeaSpecifics { } val isVimAction = (action as? AnActionWrapper)?.delegate is VimShortcutKeyAction - if (!isVimAction && injector.vimState.mode == Mode.INSERT) { + if (!isVimAction && injector.vimState.mode == Mode.INSERT && action !is EnterAction) { val undoService = injector.undo as VimTimestampBasedUndoService val nanoTime = System.nanoTime() editor?.vim?.forEachCaret { undoService.endInsertSequence(it, it.offset, nanoTime) }