|
|
@ -4282,7 +4282,7 @@ fn goto_ts_object_impl(cx: &mut Context, object: &'static str, direction: Direct
|
|
|
|
let root = syntax.tree().root_node();
|
|
|
|
let root = syntax.tree().root_node();
|
|
|
|
|
|
|
|
|
|
|
|
let selection = doc.selection(view.id).clone().transform(|range| {
|
|
|
|
let selection = doc.selection(view.id).clone().transform(|range| {
|
|
|
|
movement::goto_treesitter_object(
|
|
|
|
let new_range = movement::goto_treesitter_object(
|
|
|
|
text,
|
|
|
|
text,
|
|
|
|
range,
|
|
|
|
range,
|
|
|
|
object,
|
|
|
|
object,
|
|
|
@ -4290,8 +4290,19 @@ fn goto_ts_object_impl(cx: &mut Context, object: &'static str, direction: Direct
|
|
|
|
root,
|
|
|
|
root,
|
|
|
|
lang_config,
|
|
|
|
lang_config,
|
|
|
|
count,
|
|
|
|
count,
|
|
|
|
)
|
|
|
|
);
|
|
|
|
.with_direction(direction)
|
|
|
|
|
|
|
|
|
|
|
|
if editor.mode == Mode::Select {
|
|
|
|
|
|
|
|
let head = if new_range.head < range.anchor {
|
|
|
|
|
|
|
|
new_range.anchor
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
new_range.head
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Range::new(range.anchor, head)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
new_range.with_direction(direction)
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
doc.set_selection(view.id, selection);
|
|
|
|
doc.set_selection(view.id, selection);
|
|
|
|