Fix surround replace command replacing the wrong position on the right.

pull/376/head
Nathan Vegdahl 3 years ago
parent 43594049dd
commit 8f43dc4039

@ -3738,8 +3738,11 @@ fn surround_replace(cx: &mut Context) {
let transaction = Transaction::change(
doc.text(),
change_pos.iter().enumerate().map(|(i, &pos)| {
let ch = if i % 2 == 0 { open } else { close };
(pos, pos + 1, Some(Tendril::from_char(ch)))
if i % 2 == 0 {
(pos, pos + 1, Some(Tendril::from_char(open)))
} else {
(pos.saturating_sub(1), pos, Some(Tendril::from_char(close)))
}
}),
);
doc.apply(&transaction, view.id);

Loading…
Cancel
Save