on master help sign in
respect count in treesitter movement (#3058)
8681fb6Bob
helix-core/src/movement.rs+3−3
@@ -396,9 +396,9 @@ pub fn goto_treesitter_object(
396 dir: Direction,
396 dir: Direction,
397 slice_tree: Node,
397 slice_tree: Node,
398 lang_config: &LanguageConfiguration,
398 lang_config: &LanguageConfiguration,
399− _count: usize,
399+ count: usize,
400) -> Range {
400) -> Range {
401− let get_range = move || -> Option<Range> {
401+ let get_range = move |range: Range| -> Option<Range> {
402 let byte_pos = slice.char_to_byte(range.cursor(slice));
402 let byte_pos = slice.char_to_byte(range.cursor(slice));
403
403
404 let cap_name = |t: TextObject| format!("{}.{}", object_name, t);
404 let cap_name = |t: TextObject| format!("{}.{}", object_name, t);
@@ -436,7 +436,7 @@ pub fn goto_treesitter_object(
436 // head of range should be at beginning
436 // head of range should be at beginning
437 Some(Range::new(end_char, start_char))
437 Some(Range::new(end_char, start_char))
438 };
438 };
439− get_range().unwrap_or(range)
439+ (0..count).fold(range, |range, _| get_range(range).unwrap_or(range))
440}
440}
441
441
442#[cfg(test)]
442#[cfg(test)]