Respect injections in movement::move_parent_node_end

This commit is contained in:
Michael Davis 2024-01-25 14:33:37 -05:00 committed by Blaž Hrastnik
parent 8b6565c839
commit 035b8eabdb
2 changed files with 7 additions and 6 deletions

View file

@ -573,16 +573,11 @@ pub fn move_parent_node_end(
dir: Direction, dir: Direction,
movement: Movement, movement: Movement,
) -> Selection { ) -> Selection {
let tree = syntax.tree();
selection.transform(|range| { selection.transform(|range| {
let start_from = text.char_to_byte(range.from()); let start_from = text.char_to_byte(range.from());
let start_to = text.char_to_byte(range.to()); let start_to = text.char_to_byte(range.to());
let mut node = match tree let mut node = match syntax.named_descendant_for_byte_range(start_from, start_to) {
.root_node()
.named_descendant_for_byte_range(start_from, start_to)
{
Some(node) => node, Some(node) => node,
None => { None => {
log::debug!( log::debug!(

View file

@ -1352,6 +1352,12 @@ impl Syntax {
self.layers[container_id].tree() self.layers[container_id].tree()
} }
pub fn named_descendant_for_byte_range(&self, start: usize, end: usize) -> Option<Node<'_>> {
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<Node<'_>> { pub fn descendant_for_byte_range(&self, start: usize, end: usize) -> Option<Node<'_>> {
self.tree_for_byte_range(start, end) self.tree_for_byte_range(start, end)
.root_node() .root_node()