From: Yuan Fu Date: Wed, 16 Nov 2022 23:13:05 +0000 (-0800) Subject: Fix treesit-search-forward not matching leaf nodes X-Git-Tag: emacs-29.0.90~1656 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=902649a170ab651cffe2bbb421e1331b23c7ed01;p=emacs.git Fix treesit-search-forward not matching leaf nodes * src/treesit.c: Match against NODE at start of the loop. --- diff --git a/src/treesit.c b/src/treesit.c index 1e1238eefd3..a05efaf5db5 100644 --- a/src/treesit.c +++ b/src/treesit.c @@ -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)) {