summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/src/commands.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 57df47a7..ca977f80 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -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);