@@ -514,13 +514,15 @@ fn text_object(
514
514
515
515
let excerpt = snapshot. excerpt_containing ( offset..offset) ?;
516
516
let buffer = excerpt. buffer ( ) ;
517
+ let offset = excerpt. map_offset_to_buffer ( offset) ;
517
518
518
519
let mut matches: Vec < Range < usize > > = buffer
519
520
. text_object_ranges ( offset..offset, TreeSitterOptions :: default ( ) )
520
521
. filter_map ( |( r, m) | if m == target { Some ( r) } else { None } )
521
522
. collect ( ) ;
522
523
matches. sort_by_key ( |r| ( r. end - r. start ) ) ;
523
- if let Some ( range) = matches. first ( ) {
524
+ if let Some ( buffer_range) = matches. first ( ) {
525
+ let range = excerpt. map_range_from_buffer ( buffer_range. clone ( ) ) ;
524
526
return Some ( range. start . to_display_point ( map) ..range. end . to_display_point ( map) ) ;
525
527
}
526
528
@@ -537,12 +539,14 @@ fn text_object(
537
539
. filter_map ( |( r, m) | if m == target { Some ( r) } else { None } )
538
540
. collect ( ) ;
539
541
matches. sort_by_key ( |r| r. start ) ;
540
- if let Some ( range) = matches. first ( ) {
541
- if !range. is_empty ( ) {
542
+ if let Some ( buffer_range) = matches. first ( ) {
543
+ if !buffer_range. is_empty ( ) {
544
+ let range = excerpt. map_range_from_buffer ( buffer_range. clone ( ) ) ;
542
545
return Some ( range. start . to_display_point ( map) ..range. end . to_display_point ( map) ) ;
543
546
}
544
547
}
545
- return Some ( around_range. start . to_display_point ( map) ..around_range. end . to_display_point ( map) ) ;
548
+ let buffer_range = excerpt. map_range_from_buffer ( around_range. clone ( ) ) ;
549
+ return Some ( buffer_range. start . to_display_point ( map) ..buffer_range. end . to_display_point ( map) ) ;
546
550
}
547
551
548
552
fn argument (
0 commit comments