From f76f44c8afa9663337ecb2fcbdee2bb0a4041e66 Mon Sep 17 00:00:00 2001 From: notoria Date: Fri, 4 Jun 2021 02:40:42 +0200 Subject: [PATCH] Convert byte index to char index for `find` --- helix-core/src/.match_brackets.rs.swp | Bin 0 -> 12288 bytes helix-core/src/match_brackets.rs | 8 +++++--- 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 helix-core/src/.match_brackets.rs.swp diff --git a/helix-core/src/.match_brackets.rs.swp b/helix-core/src/.match_brackets.rs.swp new file mode 100644 index 0000000000000000000000000000000000000000..ed35b90ec8bede7cbf5909810d29e15ee6faf579 GIT binary patch literal 12288 zcmeI2L2uMX6vu}iOKGcc?cudZtSy|~gh~i4$x2n*1FdLKLb*gMul?B zwo}~~Q)6|fv}q?#T)G_(Y?A)0UD>wfyZ9FyAs_?}ATV{K#nVUBmnWB(*y7k1pVQHW z9}h5=Wg#F0gn$qb0zyCt2mv7=1pbc%+~kn@6^VUNCwHQL9{SI-p2|ZA2mv7=1cZPP z5CTF#2nYcoAOwVf5O@y>Btxa{eW=up!w4S#|8M^OfBcD3kD%+&d1wv#8v6HRrT&JV zKz~7hLTk`6v;-|cFODen0J;y|fo?!opk3$^^gZ+~^bPbG^z~G>1cZPP5CTF#2nd1qg20|4TtApXD?h5{yfz>4 z%xX8a1#OsI2c=7_i_`7IhG!JN@nC4uHoJK>!ie@)_fHAKCake`K5X7atKQT{?u?HoXi};Z zW%GIVZ`v@A`IRk=7i=iZP`8_T5Yi$opP^2NGS@0O64E>Acv@zcwc;%22UZxW{qsWt zoZ=1VZ0kyKNvrChGXB)8jJ37K;?%k*d-L+KIj#1ZI`cI0jyVcnb@mam2@k4wvwe$p zk>q+94|SO$iKKAx$XMSDvBl@vI%xVK+V6~TzS$b%Vs;x;i=1^nb^atU^Iv0=v%2n4 z;Hr~!+nNk+mh^B-x4lQa%}t5T2_RC2kG*xS(IPH0MVCey81uHQD75v4MiEmb$MLk{@Sz27LSl zdsb}GB*|<^&X6g_yA%+LPkXdUeOjTO!jA{2{0|A|Z3di1M0^kX2pKD_pcPRoY=sd8 wtr?H^s_`a|`_*`b$GukAM>ir6N-aLH?{;VFT>FTsJT~-LryP4kRhnqOm(*LGi2wiq literal 0 HcmV?d00001 diff --git a/helix-core/src/match_brackets.rs b/helix-core/src/match_brackets.rs index 2d2eb4a9..38783c19 100644 --- a/helix-core/src/match_brackets.rs +++ b/helix-core/src/match_brackets.rs @@ -26,14 +26,16 @@ pub fn find(syntax: &Syntax, doc: &Rope, pos: usize) -> Option { let start_byte = node.start_byte(); let end_byte = node.end_byte() - 1; // it's end exclusive + let start_char = doc.byte_to_char(start_byte); + let end_char = doc.byte_to_char(end_byte); - if PAIRS.contains(&(doc.char(start_byte), doc.char(end_byte))) { + if PAIRS.contains(&(doc.char(start_char), doc.char(end_char))) { if start_byte == byte_pos { - return Some(doc.byte_to_char(end_byte)); + return Some(end_char); } if end_byte == byte_pos { - return Some(doc.byte_to_char(start_byte)); + return Some(start_char); } }