@@ -652,8 +652,13 @@ where
652652 let text = doc.text().slice(..);
653653
654654 let selection = doc.selection(view.id).clone().transform(|range| {
655− search_fn(text, ch, range.head, count, inclusive)
656− .map_or(range, |pos| range.put(text, pos, extend))
655+ search_fn(text, ch, range.head, count, inclusive).map_or(range, |pos| {
656+ if extend {
657+ range.put(text, pos, true)
658+ } else {
659+ range.put(text, pos.saturating_sub(1), false)
660+ }
661+ })
657662 });
658663 doc.set_selection(view.id, selection);
659664 })