Skip to content

Commit

Permalink
Fix multi byte auto pairs (helix-editor#4024)
Browse files Browse the repository at this point in the history
* Fix test::print for Unicode

The print function was not generating correct translations when
the input has Unicode (non-ASCII) in it. This is due to its use of
String::len, which gives the length in bytes, not chars.

* Fix multi-code point auto pairs

The current code for auto pairs is counting offsets by summing the
length of the open and closing chars with char::len_utf8. Unfortunately,
this gives back bytes, and the offset needs to be in chars.

Additionally, it was discovered that there was a preexisting bug where
the selection was not computed correctly in the case that the cursor
was:

1. a single grapheme in width
2. this grapheme was more than one char
3. the direction of the cursor is backwards
4. a secondary range

In this case, the offset was not being added into the anchor. This was
fixed.

* migrate auto pairs tests to integration

* review comments
  • Loading branch information
dead10ck authored and Shekhinah Memmel committed Dec 11, 2022
1 parent 3a2be7e commit 6a65d2a
Show file tree
Hide file tree
Showing 4 changed files with 683 additions and 591 deletions.
Loading

0 comments on commit 6a65d2a

Please sign in to comment.