GNU bug report logs - #72691
Recursive descent in treesiter parse tree

Previous Next

Package: emacs;

Reported by: Pranshu Sharma <pranshusharma198 <at> gmail.com>

Date: Sun, 18 Aug 2024 07:36:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Pranshu Sharma <pranshusharma198 <at> gmail.com>
Subject: bug#72691: closed (Re: bug#72691: Recursive descent in treesiter
 parse tree)
Date: Sat, 31 Aug 2024 08:14:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#72691: Recursive descent in treesiter parse tree

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 72691 <at> debbugs.gnu.org.

-- 
72691: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72691
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Yuan Fu <casouri <at> gmail.com>
Cc: pranshusharma198 <at> gmail.com, 72691-done <at> debbugs.gnu.org
Subject: Re: bug#72691: Recursive descent in treesiter parse tree
Date: Sat, 31 Aug 2024 11:12:23 +0300
> From: Yuan Fu <casouri <at> gmail.com>
> Date: Mon, 19 Aug 2024 20:38:16 -0700
> Cc: Eli Zaretskii <eliz <at> gnu.org>,
>  72691 <at> debbugs.gnu.org
> 
> 
> 
> > On Aug 18, 2024, at 7:57 AM, Pranshu Sharma <pranshusharma198 <at> gmail.com> wrote:
> > 
> > Ok, I found the solution: you have to capture  witha function and traverse the whole tree recursively
> 
> As you’ve found out, tree-sitter’s query system doesn’t support the feature you want (it’ll be quite expensive to implement, I think). Even if you’ve found a solution, if you want, maybe you can describe your actual use-case and I can check if your solution is the most optimal.

No further comments, so I'm now closing this bug.

[Message part 3 (message/rfc822, inline)]
From: Pranshu Sharma <pranshusharma198 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Recursive descent in treesiter parse tree
Date: Sun, 18 Aug 2024 14:57:10 +1000
[Message part 4 (text/plain, inline)]
Hello all,

I am trying to write a major mode in which all instances of a node in
another matched node. For this, recursion is needed, and for that it is
necessary to store a match in a variable:
Say I want to highlight all instances of (x) that are inside y in the
following parse tree, where bolded means I want to match:
(x) in (q (y (*x*) (l (*x*) (l (*x*) (p))) (x))

"(y) @test
        @test . (_) @font-lock-variable-name-face"
"(y) @test
        (@test . (_) @font-lock-variable-name-face)"
"(y) @test
        (test . (_) @font-lock-variable-name-face)"

All of the above fail, which leads me to think that @test stores the text
instead of the tree. In this case, how would I recursively match all
instances of
[Message part 5 (text/html, inline)]

This bug report was last modified 265 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.