Fix `delete_char_backward` for paired characters (#4558)

When backward-deleting a character, if this character and the following
character form a Pair, we want to delete both. However, there is a bug
that deletes both characters also if both characters are closers of some
Pair.

This commit fixes that by adding an additional check that the deleted
character should be an opener in a Pair.

Closes https://github.com/helix-editor/helix/issues/4544.
pull/3220/head
Yuriy Gabuev 2 years ago committed by GitHub
parent 8ff92c7492
commit c803ef8753
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3198,6 +3198,7 @@ pub mod insert {
(Some(_x), Some(_y), Some(ap)) (Some(_x), Some(_y), Some(ap))
if range.is_single_grapheme(text) if range.is_single_grapheme(text)
&& ap.get(_x).is_some() && ap.get(_x).is_some()
&& ap.get(_x).unwrap().open == _x
&& ap.get(_x).unwrap().close == _y => && ap.get(_x).unwrap().close == _y =>
// delete both autopaired characters // delete both autopaired characters
{ {

Loading…
Cancel
Save