Subject: bug#60525: 29.0.60; tree-sitter support in semantic-symref

From: Eli Zaretskii <[email-masked]>
Date: Wed, 04 Jan 2023 18:57:40 +0200

> From: Stefan Monnier <[email-masked]>
> Cc: Dmitry Gutov <[email-masked]>,  Lars Ingebrigtsen <[email-masked]>,
>   [email-masked],  [email-masked]
> Date: Wed, 04 Jan 2023 10:47:54 -0500
> 
> >> On 03/01/2023 20:06, Juri Linkov wrote:
> >> > +    (c-ts-mode "*.[ch]")
> >> >       (c++-mode "*.[chCH]" "*.[ch]pp" "*.cc" "*.hh")
> >> > +    (c++-ts-mode "*.[chCH]" "*.[ch]pp" "*.cc" "*.hh")
> >> >       (html-mode "*.html" "*.shtml" "*.php")
> >> >       (mhtml-mode "*.html" "*.shtml" "*.php") ; FIXME: remove
> >> >                                               ; duplication of
> >> > @@ -53,7 +55,10 @@ semantic-symref-filepattern-alist
> >> >                                               ; major mode definition?
> >> >       (ruby-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml"
> >> >                  "Rakefile" "Thorfile" "Capfile" "Guardfile" "Vagrantfile")
> >> > +    (ruby-ts-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml"
> >> > +                  "Rakefile" "Thorfile" "Capfile" "Guardfile" "Vagrantfile")
> >> >       (python-mode "*.py" "*.pyi" "*.pyw")
> >> 
> >> Instead of duplicating entries, we could try to look up the remappings 
> >> in major-mode-remap-alist.
> >
> > That doesn't sound to me like the use of major-mode-remap-alist that
> > was intended.
> >
> > I'm okay with duplication at this point.  It is much easier, and we
> > can always augment or fix later as needed.  I see no reason to do
> > anything fancier at this point.
> >
> > Stefan, Lars, WDYT?
> 
> I'll just note that the above alists already duplicate info present in
> `auto-mode-alist`.  Admittedly, this redundant info is present in
> a different form, so maybe not directly usable as is, but if we care
> about redundancy, we should maybe add some layer on top which we can
> then use both for `semantic-symref-filepattern-alist` and for
> `auto-mode-alist`.

I' aware of the redundancy.  But since we decided to go with those
separate modes in Emacs 29, I think the redundancy is in general
unavoidable.  If we can use the fact that auto-mode-alist already
mentions both modes, and we can do that cleanly, it's fine by me.
Otherwise we will have to live with this for now.