]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix treesit-search-forward not matching leaf nodes
authorYuan Fu <casouri@gmail.com>
Wed, 16 Nov 2022 23:13:05 +0000 (15:13 -0800)
committerYuan Fu <casouri@gmail.com>
Wed, 16 Nov 2022 23:48:07 +0000 (15:48 -0800)
* src/treesit.c: Match against NODE at start of the loop.

src/treesit.c

index 1e1238eefd378327efbf8b8e04970cb5c7a17548..a05efaf5db5561c7db40d7aeba7cba8041db0db4 100644 (file)
@@ -2654,8 +2654,17 @@ treesit_search_forward (TSNode *start, Lisp_Object pred, Lisp_Object parser,
 
      (while node (setq node (treesit-search-forward node)))
   */
+  bool initial = true;
   while (true)
     {
+      if (!initial /* We don't match START.  */
+         && treesit_traverse_match_predicate (node, pred, parser))
+       {
+         *start = node;
+         return true;
+       }
+      initial = false;
+
       TSNode next = treesit_traverse_sibling_helper (node, forward, named);
       while (ts_node_is_null (next))
        {