Subject: bug#67117: [PATCH] Tree-sitter: fix an issue when searching subtree backward

From: Eli Zaretskii <[email-masked]>
Date: Sun, 19 Nov 2023 11:15:58 +0200

> From: Yuan Fu <[email-masked]>
> Date: Sat, 18 Nov 2023 22:13:49 -0800
> Cc: [email-masked],
>  [email-masked]
> 
> 
> 
> > On Nov 18, 2023, at 9:47 PM, Eli Zaretskii <[email-masked]> wrote:
> > 
> >> From: Yuan Fu <[email-masked]>
> >> Date: Sat, 18 Nov 2023 10:47:47 -0800
> >> Cc: Denis Zubarev <[email-masked]>,
> >> [email-masked]
> >> 
> >> 
> >>>> Steps to reproduce the issue:
> >>>> 1. emacs -Q
> >>>> 2. M-x find-file /tmp/t.py
> >>>> 3. paste to the buffer
> >>>> 
> >>>> Temp(1, 2) 
> >>>> 
> >>>> 4. M-x python-ts-mode
> >>>> 5. Call search-subtree with backward flag
> >>>>  M-x eval-expression (treesit-search-subtree
> >>>>              (treesit--thing-at (point) "call")
> >>>>              (lambda (n) (equal (treesit-node-type n ) "integer"))
> >>>>              t)
> >>>> It should return the second int node (#<treesit-node integer in 9-10>), but it returns nil.
> >>> 
> >>> Yuan, any comments to the patch and the issue in general?
> >> 
> >> LGTM. Thanks Denis, and Eli :-)
> > 
> > Should we install this on the emacs-29 branch or on master?
> 
> Emacs-29, I’d say, since it’s a bug fix.

I see that the added tests use treesit--thing-at, which is not
available on the emacs-29 branch.  So either we install the tests on
master, or we replace treesit--thing-at in the tests with its body.
WDYT?