diff options
author | Corey Powell | 2021-06-02 18:27:35 +0000 |
---|---|---|
committer | GitHub | 2021-06-02 18:27:35 +0000 |
commit | 7761c88d6130364915daa23115d2ee1234b2bab5 (patch) | |
tree | 23d96dcd421a094d28bb7edf9f6d2c6797fbd25d /helix-core/src | |
parent | 68f5031dcc25cef64f9f4539f4ef9f31230182be (diff) | |
parent | f5f46b1fed242f0b5a206753f7f977299fb2ff65 (diff) |
Merge pull request #62 from pickfire/cell
Separate document history into Cell
Diffstat (limited to 'helix-core/src')
-rw-r--r-- | helix-core/src/history.rs | 10 | ||||
-rw-r--r-- | helix-core/src/transaction.rs | 2 |
2 files changed, 5 insertions, 7 deletions
diff --git a/helix-core/src/history.rs b/helix-core/src/history.rs index 5a9ec8de..4348ee32 100644 --- a/helix-core/src/history.rs +++ b/helix-core/src/history.rs @@ -65,9 +65,7 @@ impl History { self.cursor == 0 } - // TODO: I'd like to pass Transaction by reference but it fights with the borrowck - - pub fn undo(&mut self) -> Option<Transaction> { + pub fn undo(&mut self) -> Option<&Transaction> { if self.at_root() { // We're at the root of undo, nothing to do. return None; @@ -77,17 +75,17 @@ impl History { self.cursor = current_revision.parent; - Some(current_revision.revert.clone()) + Some(¤t_revision.revert) } - pub fn redo(&mut self) -> Option<Transaction> { + pub fn redo(&mut self) -> Option<&Transaction> { let current_revision = &self.revisions[self.cursor]; // for now, simply pick the latest child (linear undo / redo) if let Some((index, transaction)) = current_revision.children.last() { self.cursor = *index; - return Some(transaction.clone()); + return Some(&transaction); } None } diff --git a/helix-core/src/transaction.rs b/helix-core/src/transaction.rs index 77cb358f..e61063f0 100644 --- a/helix-core/src/transaction.rs +++ b/helix-core/src/transaction.rs @@ -415,7 +415,7 @@ impl ChangeSet { /// Transaction represents a single undoable unit of changes. Several changes can be grouped into /// a single transaction. -#[derive(Debug, Clone)] +#[derive(Debug, Default, Clone)] pub struct Transaction { changes: ChangeSet, selection: Option<Selection>, |