Inform when reaching undo/redo bounds (#981)
* Inform when reaching undo/redo bounds * `Already at oldest change` when undo fails * `Already at newest change` when redo fails * Add missing `the`
This commit is contained in:
parent
aa4d0b4646
commit
51b4d35dce
2 changed files with 14 additions and 6 deletions
|
@ -3679,13 +3679,19 @@ pub mod insert {
|
|||
fn undo(cx: &mut Context) {
|
||||
let (view, doc) = current!(cx.editor);
|
||||
let view_id = view.id;
|
||||
doc.undo(view_id);
|
||||
let success = doc.undo(view_id);
|
||||
if !success {
|
||||
cx.editor.set_status("Already at oldest change".to_owned());
|
||||
}
|
||||
}
|
||||
|
||||
fn redo(cx: &mut Context) {
|
||||
let (view, doc) = current!(cx.editor);
|
||||
let view_id = view.id;
|
||||
doc.redo(view_id);
|
||||
let success = doc.redo(view_id);
|
||||
if !success {
|
||||
cx.editor.set_status("Already at newest change".to_owned());
|
||||
}
|
||||
}
|
||||
|
||||
// Yank / Paste
|
||||
|
|
|
@ -704,8 +704,8 @@ impl Document {
|
|||
success
|
||||
}
|
||||
|
||||
/// Undo the last modification to the [`Document`].
|
||||
pub fn undo(&mut self, view_id: ViewId) {
|
||||
/// Undo the last modification to the [`Document`]. Returns whether the undo was successful.
|
||||
pub fn undo(&mut self, view_id: ViewId) -> bool {
|
||||
let mut history = self.history.take();
|
||||
let success = if let Some(transaction) = history.undo() {
|
||||
self.apply_impl(transaction, view_id)
|
||||
|
@ -718,10 +718,11 @@ impl Document {
|
|||
// reset changeset to fix len
|
||||
self.changes = ChangeSet::new(self.text());
|
||||
}
|
||||
success
|
||||
}
|
||||
|
||||
/// Redo the last modification to the [`Document`].
|
||||
pub fn redo(&mut self, view_id: ViewId) {
|
||||
/// Redo the last modification to the [`Document`]. Returns whether the redo was sucessful.
|
||||
pub fn redo(&mut self, view_id: ViewId) -> bool {
|
||||
let mut history = self.history.take();
|
||||
let success = if let Some(transaction) = history.redo() {
|
||||
self.apply_impl(transaction, view_id)
|
||||
|
@ -734,6 +735,7 @@ impl Document {
|
|||
// reset changeset to fix len
|
||||
self.changes = ChangeSet::new(self.text());
|
||||
}
|
||||
success
|
||||
}
|
||||
|
||||
pub fn savepoint(&mut self) {
|
||||
|
|
Loading…
Add table
Reference in a new issue