Fix next/prev tree-sitter inconsistency (#7332)
* Fix next/prev tree-sitter inconsistency Before there where different results going to next or previous due to sorting not dealing with multiple captures that start/end at the same pos. I chose to prefer longer matches. * Revert unnecessary change
This commit is contained in:
parent
d249639114
commit
a4a86120e8
1 changed files with 3 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
use std::iter;
|
||||
use std::{cmp::Reverse, iter};
|
||||
|
||||
use ropey::iter::Chars;
|
||||
use tree_sitter::{Node, QueryCursor};
|
||||
|
@ -527,10 +527,10 @@ pub fn goto_treesitter_object(
|
|||
let node = match dir {
|
||||
Direction::Forward => nodes
|
||||
.filter(|n| n.start_byte() > byte_pos)
|
||||
.min_by_key(|n| n.start_byte())?,
|
||||
.min_by_key(|n| (n.start_byte(), Reverse(n.end_byte())))?,
|
||||
Direction::Backward => nodes
|
||||
.filter(|n| n.end_byte() < byte_pos)
|
||||
.max_by_key(|n| n.end_byte())?,
|
||||
.max_by_key(|n| (n.end_byte(), Reverse(n.start_byte())))?,
|
||||
};
|
||||
|
||||
let len = slice.len_bytes();
|
||||
|
|
Loading…
Reference in a new issue