bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode


From: Yuan Fu
Subject: bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode
Date: Wed, 25 Dec 2024 01:11:32 -0800


> On Dec 24, 2024, at 11:49 PM, Juri Linkov <juri@linkov.net> wrote:
> 
>>> This mismatched "string" in TypeScript is even more
>>> unexpected than "unless" in Ruby.
>>> 
>>> So probably we need a way to mark all used nodes as named
>>> to avoid such unexpected matches.  Maybe matching anonymous nodes
>>> should be opt-in, and by default match only named nodes.
>> 
>> IMHO this is just an unfortunate bug that needs to be fixed. I agree that
>> this type of bug are hard to avoid, which is a bad thing, but that doesn’t
>> mean we should try to alleviate it at any cost. Making predicates named by
>> default just adds complexity and inflexibility for not much benefit.
> 
> Not sure if a possible flexibility is better than unintended matches.
> 
> When the authors of a ts-mode carefully selected a list of named nodes to 
> match,
> why treesit should try to match some random and unintended anonymous nodes?

I don’t know and can’t prove how much the flexibility is worth, but the cost on 
complexity is real. If everywhere else uses thing predicates as-is, but sexp 
navigation auto-converts thing predicates into named predicate, that’s a 
cognitive burden and a special case that’s guaranteed to trip people over.

OTOH, what’s the downside of wrapping the sexp predicate with (and named …), if 
you only want named nodes to match?

I just think the cost outweighs the benefit, if there is any to begin with.

Yuan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]