[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
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, (continued)
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Yuan Fu, 2024/12/23
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/24
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/24
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Dmitry Gutov, 2024/12/24
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/25
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Dmitry Gutov, 2024/12/25
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/27
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/24
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Yuan Fu, 2024/12/24
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/25
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode,
Yuan Fu <=
- bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode, Juri Linkov, 2024/12/25
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Juri Linkov, 2024/12/19
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Juri Linkov, 2024/12/19
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Juri Linkov, 2024/12/24
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Yuan Fu, 2024/12/24
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Juri Linkov, 2024/12/25
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Yuan Fu, 2024/12/25
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Juri Linkov, 2024/12/25
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Juri Linkov, 2024/12/27
- bug#73404: 30.0.50; [forward/kill/etc]-sexp commands do not behave as expected in tree-sitter modes, Stefan Monnier, 2024/12/25