aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src/transaction.rs
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-03-18 04:28:27 +0000
committerBlaž Hrastnik2021-03-18 04:39:56 +0000
commit8eaf9a432d14b6c2dd084dabbea606e4b1e3baa0 (patch)
treea353a3a9182622b8434165825e03e2264bb444ea /helix-core/src/transaction.rs
parent51c15da3c32b2f0bf3da6db9bca9496d333ec15a (diff)
Make Transaction::change only rely on the rope.
Diffstat (limited to 'helix-core/src/transaction.rs')
-rw-r--r--helix-core/src/transaction.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/helix-core/src/transaction.rs b/helix-core/src/transaction.rs
index bd605305..dbc5d588 100644
--- a/helix-core/src/transaction.rs
+++ b/helix-core/src/transaction.rs
@@ -459,11 +459,11 @@ impl Transaction {
}
/// Generate a transaction from a set of changes.
- pub fn change<I>(state: &State, changes: I) -> Self
+ pub fn change<I>(doc: &Rope, changes: I) -> Self
where
I: IntoIterator<Item = Change> + ExactSizeIterator,
{
- let len = state.doc.len_chars();
+ let len = doc.len_chars();
let acc = Vec::with_capacity(2 * changes.len() + 1);
let mut changeset = ChangeSet { changes: acc, len };
@@ -494,7 +494,7 @@ impl Transaction {
where
F: FnMut(&Range) -> Change,
{
- Self::change(state, state.selection.ranges().iter().map(f))
+ Self::change(&state.doc, state.selection.ranges().iter().map(f))
}
/// Insert text at each selection head.
@@ -617,7 +617,7 @@ mod test {
fn transaction_change() {
let mut state = State::new("hello world!\ntest 123".into());
let transaction = Transaction::change(
- &state,
+ &state.doc,
// (1, 1, None) is a useless 0-width delete
vec![(1, 1, None), (6, 11, Some("void".into())), (12, 17, None)].into_iter(),
);