From c40fedc274207c2dbd47a78c08385af665c1bf5a Mon Sep 17 00:00:00 2001 From: Dimitri Sabadie Date: Thu, 18 Apr 2024 17:10:52 +0200 Subject: [PATCH] fixup! Add tree-sitter navigation. #273 --- kak-tree-sitter/src/tree_sitter_state.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kak-tree-sitter/src/tree_sitter_state.rs b/kak-tree-sitter/src/tree_sitter_state.rs index 426bbeb..a97daa0 100644 --- a/kak-tree-sitter/src/tree_sitter_state.rs +++ b/kak-tree-sitter/src/tree_sitter_state.rs @@ -391,17 +391,21 @@ impl TreeState { return Some(node); } + log::debug!("walking node {node:?} for dir {dir:?}"); let mut cursor = node.walk(); - match dir { - Dir::Parent if cursor.goto_parent() => Some(cursor.node()), - Dir::FirstChild if cursor.goto_first_child() => Some(cursor.node()), + let res = match dir { + Dir::Parent => node.parent(), + Dir::FirstChild => node.child(0), Dir::FirstSibling if cursor.goto_parent() && cursor.goto_first_child() => { Some(cursor.node()) } // NOTE: hmmm… Dir::NextSibling if cursor.goto_next_sibling() => Some(cursor.node()), _ => None, - } + }; + + log::debug!("navigated to node: {res:?}"); + res }) .map(|node| sel.replace_with_node(&node)) .unwrap_or_else(|| sel.clone())