@@ -4282,7 +4282,7 @@ fn goto_ts_object_impl(cx: &mut Context, object: &'static str, direction: Direct
4282 let root = syntax.tree().root_node();
4282 let root = syntax.tree().root_node();
4284 let selection = doc.selection(view.id).clone().transform(|range| {
4284 let selection = doc.selection(view.id).clone().transform(|range| {
4285− movement::goto_treesitter_object(
4285+ let new_range = movement::goto_treesitter_object(
@@ -4290,8 +4290,19 @@ fn goto_ts_object_impl(cx: &mut Context, object: &'static str, direction: Direct
4291 lang_config,
4291 lang_config,
4295+ if editor.mode == Mode::Select {
4296+ let head = if new_range.head < range.anchor {
4302+ Range::new(range.anchor, head)
4294− .with_direction(direction)
4304+ new_range.with_direction(direction)
4297 doc.set_selection(view.id, selection);
4308 doc.set_selection(view.id, selection);