From 49b1f2a869be199aaba97e6a4d74995c5161d7b0 Mon Sep 17 00:00:00 2001 From: JJ Date: Tue, 31 Oct 2023 20:11:31 -0700 Subject: Fix writes from insert mode not properly updating the revision history ref: https://github.com/helix-editor/helix/issues/3501 ref: https://github.com/helix-editor/helix/issues/6513 ref: https://github.com/helix-editor/helix/pull/7226 --- helix-term/src/commands/typed.rs | 5 +++++ helix-term/src/ui/editor.rs | 8 +------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs index abe6dd97..4b14f5ec 100644 --- a/helix-term/src/commands/typed.rs +++ b/helix-term/src/commands/typed.rs @@ -355,6 +355,8 @@ fn write_impl( None }; + doc.append_changes_to_history(view); + if fmt.is_none() { let id = doc.id(); cx.editor.save(id, path, force)?; @@ -732,6 +734,9 @@ pub fn write_all_impl( None }; + let view = view_mut!(cx.editor); + doc.append_changes_to_history(view); + if fmt.is_none() { cx.editor.save::(doc_id, None, force)?; } diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs index 9e30cea4..7afd34f3 100644 --- a/helix-term/src/ui/editor.rs +++ b/helix-term/src/ui/editor.rs @@ -1311,15 +1311,9 @@ impl Component for EditorView { cx.editor.count = None; let config = cx.editor.config(); - let mode = cx.editor.mode(); let (view, doc) = current!(cx.editor); view.ensure_cursor_in_view(doc, config.scrolloff); - - // Store a history state if not in insert mode. Otherwise wait till we exit insert - // to include any edits to the paste in the history state. - if mode != Mode::Insert { - doc.append_changes_to_history(view); - } + doc.append_changes_to_history(view); EventResult::Consumed(None) } -- cgit v1.2.3-70-g09d2