GNU bug report logs -
#74963
Ambiguous treesit named and anonymous nodes in ruby-ts-mode
Previous Next
Full log
View this message in rfc822 format
> I’ll go with the (and named “unless”) route because after thinking
> about it more, “(unless)” will be hard to work with because the string
> predicate is actually a regexp.
Is it possible to mark all node names specified in treesit-thing-settings
as named?
I just discovered a new problem:
1. With typescript-ts-mode on the following snippet:
type NodeInfo =
| (BaseNode & {
subtypes: BaseNode[];
})
| (BaseNode & {
fields: { [name: string]: ChildNode };
children: ChildNode[];
});
You can move point inside "string" and type C-M-f or C-M-b.
But point doesn't move.
This is because treesit-thing-settings defines a named node "string".
But anonymous node has the same name "string":
(index_signature [ name: (identifier) :
index_type: (predefined_type string)
and (treesit-node-at (point)) returns
#<treesit-node "string" in 111-117>
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.
This bug report was last modified 138 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.