Skip to main content

undo

Function undo 

Source
pub fn undo(edit: &mut TextEdit, config: &Config, metrics: &Metrics<'_>) -> bool
Expand description

Undoes one step, replaying each item’s inverse against the live layout.

Returns whether anything was undone. The selection each item carries from before its edit is restored; a redo deliberately restores none.


let mut edit = TextEdit::new("", &config, &metrics, true);
for ch in "ABC".chars() {
    ops::insert_char(&mut edit, &config, &metrics, ch, None);
}

// One item per keystroke, so each undo takes one character.
assert!(ops::undo(&mut edit, &config, &metrics));
assert_eq!(edit.text, "AB");
assert!(ops::undo(&mut edit, &config, &metrics));
assert_eq!(edit.text, "A");

// An exhausted stack answers `false` rather than doing nothing quietly.
assert!(ops::undo(&mut edit, &config, &metrics));
assert!(!ops::undo(&mut edit, &config, &metrics));
assert_eq!(edit.text, "");