From 035b8eabdbad02bdcf4f254162623f14767e62de Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Thu, 25 Jan 2024 14:33:37 -0500 Subject: [PATCH] Respect injections in movement::move_parent_node_end --- helix-core/src/movement.rs | 7 +------ helix-core/src/syntax.rs | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/helix-core/src/movement.rs b/helix-core/src/movement.rs index 6c4f3f535..54eb02fd0 100644 --- a/helix-core/src/movement.rs +++ b/helix-core/src/movement.rs @@ -573,16 +573,11 @@ pub fn move_parent_node_end( dir: Direction, movement: Movement, ) -> Selection { - let tree = syntax.tree(); - selection.transform(|range| { let start_from = text.char_to_byte(range.from()); let start_to = text.char_to_byte(range.to()); - let mut node = match tree - .root_node() - .named_descendant_for_byte_range(start_from, start_to) - { + let mut node = match syntax.named_descendant_for_byte_range(start_from, start_to) { Some(node) => node, None => { log::debug!( diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index a403e7ccf..24de1a338 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -1352,6 +1352,12 @@ impl Syntax { self.layers[container_id].tree() } + pub fn named_descendant_for_byte_range(&self, start: usize, end: usize) -> Option> { + self.tree_for_byte_range(start, end) + .root_node() + .named_descendant_for_byte_range(start, end) + } + pub fn descendant_for_byte_range(&self, start: usize, end: usize) -> Option> { self.tree_for_byte_range(start, end) .root_node()