GNU bug report logs -
#74963
Ambiguous treesit named and anonymous nodes in ruby-ts-mode
Previous Next
Full log
Message #14 received at 74963 <at> debbugs.gnu.org (full text, mbox):
> (setq-local treesit-thing-settings
> `((ruby
> (sexp ,(cons (rx
> bol
> (or
> "class"
> ...
> )
> eol)
> #'ruby-ts--sexp-p))
BTW, I just fixed a bug in typescript-ts-mode
where "string_fragment" was mismatched by "string",
because its regexp-opt matched node names too widely,
so needed to enclose in regexp anchors.
I see that all ts-modes solve this common problem each in its own way
(here 'list' indicates a list of strings that should match node names):
c-ts-mode: (regexp-opt list 'symbols)
js-ts-mode: (concat "\\_<" (regexp-opt list t) "\\_>")
java-ts-mode: (rx (or list))
ruby-ts-mode: (rx bol (or list) eol)
Currently there is no uniform way to handle this frequent need.
'concat' like above looks too ugly, but 'regexp-opt' with the
'symbols' arg produces a strange regexp for matching symbols.
Maybe better would be create a new argument for 'regexp-opt', e.g.:
(regexp-opt list 'complete)
that will expand to:
(concat "^" list "$")
This bug report was last modified 192 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.