From c388e16e09b36c665c4f92db4f7a071e7c1d9761 Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Mon, 10 Oct 2022 15:15:37 -0500 Subject: Add a helper function for applying transactions It is easy to forget to call `Document::apply` and/or `View::apply` in the correct order. This commit introduces a helper function which closes over both calls. --- helix-term/src/commands/lsp.rs | 5 ++--- helix-term/src/commands/typed.rs | 17 ++++++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'helix-term/src/commands') diff --git a/helix-term/src/commands/lsp.rs b/helix-term/src/commands/lsp.rs index 726aec67..3fa5c96f 100644 --- a/helix-term/src/commands/lsp.rs +++ b/helix-term/src/commands/lsp.rs @@ -9,7 +9,7 @@ use tui::text::{Span, Spans}; use super::{align_view, push_jump, Align, Context, Editor, Open}; use helix_core::{path, Selection}; -use helix_view::{editor::Action, theme::Style}; +use helix_view::{apply_transaction, editor::Action, theme::Style}; use crate::{ compositor::{self, Compositor}, @@ -617,8 +617,7 @@ pub fn apply_workspace_edit( text_edits, offset_encoding, ); - doc.apply(&transaction, view_id); - view_mut!(editor, view_id).apply(&transaction, doc); + apply_transaction(&transaction, doc, view_mut!(editor, view_id)); doc.append_changes_to_history(view_id); }; diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs index 574e895b..726c7456 100644 --- a/helix-term/src/commands/typed.rs +++ b/helix-term/src/commands/typed.rs @@ -2,7 +2,10 @@ use std::ops::Deref; use super::*; -use helix_view::editor::{Action, CloseError, ConfigEvent}; +use helix_view::{ + apply_transaction, + editor::{Action, CloseError, ConfigEvent}, +}; use ui::completers::{self, Completer}; #[derive(Clone)] @@ -462,8 +465,7 @@ fn set_line_ending( } }), ); - doc.apply(&transaction, view.id); - view.apply(&transaction, doc); + apply_transaction(&transaction, doc, view); doc.append_changes_to_history(view.id); Ok(()) @@ -884,8 +886,7 @@ fn replace_selections_with_clipboard_impl( (range.from(), range.to(), Some(contents.as_str().into())) }); - doc.apply(&transaction, view.id); - view.apply(&transaction, doc); + apply_transaction(&transaction, doc, view); doc.append_changes_to_history(view.id); Ok(()) } @@ -1400,8 +1401,7 @@ fn sort_impl( .map(|(s, fragment)| (s.from(), s.to(), Some(fragment))), ); - doc.apply(&transaction, view.id); - view.apply(&transaction, doc); + apply_transaction(&transaction, doc, view); doc.append_changes_to_history(view.id); Ok(()) @@ -1445,8 +1445,7 @@ fn reflow( (range.from(), range.to(), Some(reflowed_text)) }); - doc.apply(&transaction, view.id); - view.apply(&transaction, doc); + apply_transaction(&transaction, doc, view); doc.append_changes_to_history(view.id); view.ensure_cursor_in_view(doc, scrolloff); -- cgit v1.2.3-70-g09d2