diff options
author | Nathan Vegdahl | 2021-07-24 00:52:45 +0000 |
---|---|---|
committer | Nathan Vegdahl | 2021-07-24 00:52:45 +0000 |
commit | 8f43dc40398ff8372b1612241081926bac6d2055 (patch) | |
tree | e2a5e04b5ca8c4f9661dfe41858f09ad1b580883 | |
parent | 43594049ddd6b0ec3794807016ab3cd2a6a38834 (diff) |
Fix surround replace command replacing the wrong position on the right.
-rw-r--r-- | helix-term/src/commands.rs | 7 |
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); |