all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#60525: 29.0.60; tree-sitter support in semantic-symref
@ 2023-01-03 18:06 Juri Linkov
  2023-01-03 20:19 ` Eli Zaretskii
  2023-01-04  1:51 ` Dmitry Gutov
  0 siblings, 2 replies; 20+ messages in thread
From: Juri Linkov @ 2023-01-03 18:06 UTC (permalink / raw)
  To: 60525

[-- Attachment #1: Type: text/plain, Size: 81 bytes --]

This duplication is needed to support 'M-?' (xref-find-references) in ts-modes:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: ts-semantic-symref.patch --]
[-- Type: text/x-diff, Size: 1236 bytes --]

diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el
index c698c2ef5a2..cebeac3adca 100644
--- a/lisp/cedet/semantic/symref/grep.el
+++ b/lisp/cedet/semantic/symref/grep.el
@@ -44,7 +44,9 @@ semantic-symref-tool-grep
 
 (defvar semantic-symref-filepattern-alist
   '((c-mode "*.[ch]")
+    (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")
+    (python-ts-mode "*.py" "*.pyi" "*.pyw")
     (perl-mode "*.pl" "*.PL")
     (cperl-mode "*.pl" "*.PL")
     (lisp-interaction-mode "*.el" "*.ede" ".emacs" "_emacs")

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-03 18:06 bug#60525: 29.0.60; tree-sitter support in semantic-symref Juri Linkov
@ 2023-01-03 20:19 ` Eli Zaretskii
  2023-01-04  1:51 ` Dmitry Gutov
  1 sibling, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-03 20:19 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 60525

> From: Juri Linkov <juri@linkov.net>
> Date: Tue, 03 Jan 2023 20:06:25 +0200
> 
> This duplication is needed to support 'M-?' (xref-find-references) in ts-modes:

Thanks, this is okay for the emacs-29 branch.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-03 18:06 bug#60525: 29.0.60; tree-sitter support in semantic-symref Juri Linkov
  2023-01-03 20:19 ` Eli Zaretskii
@ 2023-01-04  1:51 ` Dmitry Gutov
  2023-01-04  7:43   ` Juri Linkov
  2023-01-04 14:26   ` Eli Zaretskii
  1 sibling, 2 replies; 20+ messages in thread
From: Dmitry Gutov @ 2023-01-04  1:51 UTC (permalink / raw)
  To: Juri Linkov, 60525

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.

Or (more effort) change the structure of the "alist" to also contain 
lists of modes in the keys. Like in eglot-server-programs.

diff --git a/lisp/cedet/semantic/symref/grep.el 
b/lisp/cedet/semantic/symref/grep.el
index c698c2ef5a2..ecfeaae220c 100644
--- a/lisp/cedet/semantic/symref/grep.el
+++ b/lisp/cedet/semantic/symref/grep.el
@@ -71,7 +71,10 @@ semantic-symref-derive-find-filepatterns
  Optional argument MODE specifies the `major-mode' to test."
    ;; First, try the filepattern alist.
    (let* ((mode (or mode major-mode))
-	 (pat (cdr (assoc mode semantic-symref-filepattern-alist))))
+	 (pat
+          (or (assoc-default mode semantic-symref-filepattern-alist)
+              (assoc-default (car (rassoc mode major-mode-remap-alist))
+                             semantic-symref-filepattern-alist))))
      (when (not pat)
        ;; No hit, try auto-mode-alist.
        (dolist (X auto-mode-alist)






^ permalink raw reply related	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04  1:51 ` Dmitry Gutov
@ 2023-01-04  7:43   ` Juri Linkov
  2023-01-04 12:06     ` Dmitry Gutov
  2023-01-04 14:34     ` Eli Zaretskii
  2023-01-04 14:26   ` Eli Zaretskii
  1 sibling, 2 replies; 20+ messages in thread
From: Juri Linkov @ 2023-01-04  7:43 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 60525

>>       (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")
>
> Instead of duplicating entries, we could try to look up the remappings in
> major-mode-remap-alist.
>
> Or (more effort) change the structure of the "alist" to also contain lists
> of modes in the keys. Like in eglot-server-programs.
>
> diff --git a/lisp/cedet/semantic/symref/grep.el
> ...
> -	 (pat (cdr (assoc mode semantic-symref-filepattern-alist))))
> +	 (pat
> +          (or (assoc-default mode semantic-symref-filepattern-alist)
> +              (assoc-default (car (rassoc mode major-mode-remap-alist))
> +                             semantic-symref-filepattern-alist))))

I'm fine with this change if Eli agrees to install it
on the emacs-29 branch.

But also note that such duplication is unavoidable in many other places.
For example, to support abbreviations there is the need to manually
rename

  (define-abbrev-table 'ruby-mode-abbrev-table

to

  (define-abbrev-table 'ruby-base-mode-abbrev-table

in ~/.emacs.d/abbrev_defs.  But on exiting Emacs it insists
on saving duplicate abbrevs to 

  (define-abbrev-table 'ruby-ts-mode-abbrev-table





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04  7:43   ` Juri Linkov
@ 2023-01-04 12:06     ` Dmitry Gutov
  2023-01-04 14:34     ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Dmitry Gutov @ 2023-01-04 12:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 60525

On 04/01/2023 09:43, Juri Linkov wrote:
> But also note that such duplication is unavoidable in many other places.
> For example, to support abbreviations there is the need to manually
> rename
> 
>    (define-abbrev-table 'ruby-mode-abbrev-table
> 
> to
> 
>    (define-abbrev-table 'ruby-base-mode-abbrev-table
> 
> in ~/.emacs.d/abbrev_defs.  But on exiting Emacs it insists
> on saving duplicate abbrevs to
> 
>    (define-abbrev-table 'ruby-ts-mode-abbrev-table

Perhaps something could be done inside abbrev (e.g. save which major 
mode it was enabled in). Not sure.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04  1:51 ` Dmitry Gutov
  2023-01-04  7:43   ` Juri Linkov
@ 2023-01-04 14:26   ` Eli Zaretskii
  2023-01-04 15:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-05 18:18     ` Juri Linkov
  1 sibling, 2 replies; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-04 14:26 UTC (permalink / raw)
  To: Dmitry Gutov, Stefan Monnier, Lars Ingebrigtsen; +Cc: 60525, juri

> Date: Wed, 4 Jan 2023 03:51:28 +0200
> From: Dmitry Gutov <dgutov@yandex.ru>
> 
> 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?





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04  7:43   ` Juri Linkov
  2023-01-04 12:06     ` Dmitry Gutov
@ 2023-01-04 14:34     ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-04 14:34 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 60525, dgutov

> Cc: 60525@debbugs.gnu.org
> From: Juri Linkov <juri@linkov.net>
> Date: Wed, 04 Jan 2023 09:43:12 +0200
> 
> > diff --git a/lisp/cedet/semantic/symref/grep.el
> > ...
> > -	 (pat (cdr (assoc mode semantic-symref-filepattern-alist))))
> > +	 (pat
> > +          (or (assoc-default mode semantic-symref-filepattern-alist)
> > +              (assoc-default (car (rassoc mode major-mode-remap-alist))
> > +                             semantic-symref-filepattern-alist))))
> 
> I'm fine with this change if Eli agrees to install it
> on the emacs-29 branch.

No, it's too much for the release branch, and as I wrote elsewhere,
doesn't sound justified to me.

> But also note that such duplication is unavoidable in many other places.
> For example, to support abbreviations there is the need to manually
> rename
> 
>   (define-abbrev-table 'ruby-mode-abbrev-table
> 
> to
> 
>   (define-abbrev-table 'ruby-base-mode-abbrev-table
> 
> in ~/.emacs.d/abbrev_defs.  But on exiting Emacs it insists
> on saving duplicate abbrevs to 
> 
>   (define-abbrev-table 'ruby-ts-mode-abbrev-table

There's no way around that: people who want use both modes will have
to live with duplication for now.  There's a limit to what we can do
so close to the release.  Sorry.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 14:26   ` Eli Zaretskii
@ 2023-01-04 15:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-04 16:57       ` Eli Zaretskii
  2023-01-05 18:18     ` Juri Linkov
  1 sibling, 1 reply; 20+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-01-04 15:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, juri, 60525, Dmitry Gutov

>> 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`.


        Stefan






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 15:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-01-04 16:57       ` Eli Zaretskii
  2023-01-04 17:03         ` Dmitry Gutov
  2023-01-04 18:07         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-04 16:57 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: larsi, juri, 60525, dgutov

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Dmitry Gutov <dgutov@yandex.ru>,  Lars Ingebrigtsen <larsi@gnus.org>,
>   juri@linkov.net,  60525@debbugs.gnu.org
> 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.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 16:57       ` Eli Zaretskii
@ 2023-01-04 17:03         ` Dmitry Gutov
  2023-01-04 17:17           ` Eli Zaretskii
  2023-01-04 18:07         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 20+ messages in thread
From: Dmitry Gutov @ 2023-01-04 17:03 UTC (permalink / raw)
  To: Eli Zaretskii, Stefan Monnier; +Cc: larsi, 60525, juri

On 04/01/2023 18:57, Eli Zaretskii wrote:
> 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.

I believe Stefan is referring to redundancy between auto-mode-alist and 
semantic-symref-filepattern-alist. Which seems unavoidable so far as the 
former requires just one element in the car position, and the latter 
works with lists of filename globs.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 17:03         ` Dmitry Gutov
@ 2023-01-04 17:17           ` Eli Zaretskii
  0 siblings, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-04 17:17 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: larsi, 60525, monnier, juri

> Date: Wed, 4 Jan 2023 19:03:28 +0200
> Cc: larsi@gnus.org, juri@linkov.net, 60525@debbugs.gnu.org
> From: Dmitry Gutov <dgutov@yandex.ru>
> 
> On 04/01/2023 18:57, Eli Zaretskii wrote:
> > 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.
> 
> I believe Stefan is referring to redundancy between auto-mode-alist and 
> semantic-symref-filepattern-alist.

Yes, I understood that, and my response was to that aspect.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 16:57       ` Eli Zaretskii
  2023-01-04 17:03         ` Dmitry Gutov
@ 2023-01-04 18:07         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-04 18:20           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-04 18:39           ` Eli Zaretskii
  1 sibling, 2 replies; 20+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-01-04 18:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, juri, 60525, dgutov

>> >> 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.

BTW, other ways to reduce the redundancy (not between
`semantic-symref-filepattern-alist` and `auto-mode-alist`, but the one
introduced by the patch above):

- make the various variants of a major mode all inherit from a shared
  parent mode (and then use that shared parent mode in
  `semantic-symref-filepattern-alist`).

- Use `set-auto-mode--last` which remembers the mode specified before it
  was remapped by things like `major-mode-remap-alist` (or by dispatch
  functions like `tex-mode`).


        Stefan






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 18:07         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-01-04 18:20           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-04 18:43             ` Eli Zaretskii
  2023-01-05 17:29             ` Juri Linkov
  2023-01-04 18:39           ` Eli Zaretskii
  1 sibling, 2 replies; 20+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-01-04 18:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, juri, 60525, dgutov

>>> >> 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.
>
> BTW, other ways to reduce the redundancy (not between
> `semantic-symref-filepattern-alist` and `auto-mode-alist`, but the one
> introduced by the patch above):
>
> - make the various variants of a major mode all inherit from a shared
>   parent mode (and then use that shared parent mode in
>   `semantic-symref-filepattern-alist`).
>
> - Use `set-auto-mode--last` which remembers the mode specified before it
>   was remapped by things like `major-mode-remap-alist` (or by dispatch
>   functions like `tex-mode`).

Oh, and of course:

- move the info from `semantic-symref-filepattern-alist` to
  a buffer-local `semantic-symref-filepattern` which is set by the major
  modes, so the same setting can be shared by the various modes like all
  the other buffer-local settings (`comment-start`, ...).

BTW, I see that the info provided by `semantic-symref-filepattern-alist`
could be (re)used also in `C-u M-x grep`.


        Stefan






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 18:07         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-04 18:20           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-01-04 18:39           ` Eli Zaretskii
  2023-01-04 19:04             ` Dmitry Gutov
  1 sibling, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-04 18:39 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: larsi, juri, 60525, dgutov

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: dgutov@yandex.ru,  larsi@gnus.org,  juri@linkov.net,  60525@debbugs.gnu.org
> Date: Wed, 04 Jan 2023 13:07:47 -0500
> 
> - make the various variants of a major mode all inherit from a shared
>   parent mode (and then use that shared parent mode in
>   `semantic-symref-filepattern-alist`).

This idea was tried, but it doesn't work well enough, at least not for
all such mode pairs.

> - Use `set-auto-mode--last` which remembers the mode specified before it
>   was remapped by things like `major-mode-remap-alist` (or by dispatch
>   functions like `tex-mode`).

I'd need to see the code to reason about it (though I understand the
general idea).





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 18:20           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-01-04 18:43             ` Eli Zaretskii
  2023-01-04 19:38               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-05 17:29             ` Juri Linkov
  1 sibling, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2023-01-04 18:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: larsi, juri, 60525, dgutov

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: dgutov@yandex.ru,  larsi@gnus.org,  juri@linkov.net,  60525@debbugs.gnu.org
> Date: Wed, 04 Jan 2023 13:20:26 -0500
> 
> - move the info from `semantic-symref-filepattern-alist` to
>   a buffer-local `semantic-symref-filepattern` which is set by the major
>   modes, so the same setting can be shared by the various modes like all
>   the other buffer-local settings (`comment-start`, ...).
> 
> BTW, I see that the info provided by `semantic-symref-filepattern-alist`
> could be (re)used also in `C-u M-x grep`.

Fine with me, but that is hardly for the release branch.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 18:39           ` Eli Zaretskii
@ 2023-01-04 19:04             ` Dmitry Gutov
  2023-01-04 19:36               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Gutov @ 2023-01-04 19:04 UTC (permalink / raw)
  To: Eli Zaretskii, Stefan Monnier; +Cc: larsi, 60525, juri

On 04/01/2023 20:39, Eli Zaretskii wrote:
>> From: Stefan Monnier<monnier@iro.umontreal.ca>
>> Cc:dgutov@yandex.ru,larsi@gnus.org,juri@linkov.net,60525@debbugs.gnu.org
>> Date: Wed, 04 Jan 2023 13:07:47 -0500
>>
>> - make the various variants of a major mode all inherit from a shared
>>    parent mode (and then use that shared parent mode in
>>    `semantic-symref-filepattern-alist`).
> This idea was tried, but it doesn't work well enough, at least not for
> all such mode pairs.
> 

2 out of 3 modes added by this patch do have "base" modes that can be 
used: python-base-mode and ruby-base-mode.

The search will have to become a little more complex, though, to account 
for parent modes. Not just (cdr (assoc mode 
semantic-symref-filepattern-alist)).





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 19:04             ` Dmitry Gutov
@ 2023-01-04 19:36               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 20+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-01-04 19:36 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Eli Zaretskii, 60525, larsi, juri

> The search will have to become a little more complex, though, to account for
> parent modes. Not just (cdr (assoc mode semantic-symref-filepattern-alist)).

If it doesn't account for mode inheritance, then I'd argue that it's
already broken.


        Stefan






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 18:43             ` Eli Zaretskii
@ 2023-01-04 19:38               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 20+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-01-04 19:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, juri, 60525, dgutov

>> - move the info from `semantic-symref-filepattern-alist` to
>>   a buffer-local `semantic-symref-filepattern` which is set by the major
>>   modes, so the same setting can be shared by the various modes like all
>>   the other buffer-local settings (`comment-start`, ...).
>>
>> BTW, I see that the info provided by `semantic-symref-filepattern-alist`
>> could be (re)used also in `C-u M-x grep`.
>
> Fine with me, but that is hardly for the release branch.

None of the my "alternatives" were meant for `emacs-29`, indeed (tho
apparently there's a `ruby-base-mode` so it could have been an option,
if it weren't for the fact that `semantic-symref-filepattern-alist` is
too simplistic for that).


        Stefan






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 18:20           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-01-04 18:43             ` Eli Zaretskii
@ 2023-01-05 17:29             ` Juri Linkov
  1 sibling, 0 replies; 20+ messages in thread
From: Juri Linkov @ 2023-01-05 17:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Eli Zaretskii, 60525, larsi, dgutov

>>>> >> 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")
>
> BTW, I see that the info provided by `semantic-symref-filepattern-alist`
> could be (re)used also in `C-u M-x grep`.

Indeed, another duplication with:

  (defcustom grep-files-aliases
    '(("all" .   "* .*")
      ("el" .    "*.el")
      ("ch" .    "*.[ch]")
      ("c" .     "*.c")
      ("cc" .    "*.cc *.cxx *.cpp *.C *.CC *.c++")
      ("cchh" .  "*.cc *.[ch]xx *.[ch]pp *.[CHh] *.CC *.HH *.[ch]++")
      ("hh" .    "*.hxx *.hpp *.[Hh] *.HH *.h++")
      ("h" .     "*.h")
      ("l" .     "[Cc]hange[Ll]og*")
      ("am" .    "Makefile.am GNUmakefile *.mk")
      ("m" .     "[Mm]akefile*")
      ("tex" .   "*.tex")
      ("texi" .  "*.texi")
      ("asm" .   "*.[sS]"))





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#60525: 29.0.60; tree-sitter support in semantic-symref
  2023-01-04 14:26   ` Eli Zaretskii
  2023-01-04 15:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-01-05 18:18     ` Juri Linkov
  1 sibling, 0 replies; 20+ messages in thread
From: Juri Linkov @ 2023-01-05 18:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, 60525, Stefan Monnier, Dmitry Gutov

>> > +    (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")
>
> 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.

So I pushed this to emacs-29, and leave this bug report open
for more generalization in master.





^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-01-05 18:18 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-03 18:06 bug#60525: 29.0.60; tree-sitter support in semantic-symref Juri Linkov
2023-01-03 20:19 ` Eli Zaretskii
2023-01-04  1:51 ` Dmitry Gutov
2023-01-04  7:43   ` Juri Linkov
2023-01-04 12:06     ` Dmitry Gutov
2023-01-04 14:34     ` Eli Zaretskii
2023-01-04 14:26   ` Eli Zaretskii
2023-01-04 15:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-04 16:57       ` Eli Zaretskii
2023-01-04 17:03         ` Dmitry Gutov
2023-01-04 17:17           ` Eli Zaretskii
2023-01-04 18:07         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-04 18:20           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-04 18:43             ` Eli Zaretskii
2023-01-04 19:38               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-05 17:29             ` Juri Linkov
2023-01-04 18:39           ` Eli Zaretskii
2023-01-04 19:04             ` Dmitry Gutov
2023-01-04 19:36               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-05 18:18     ` Juri Linkov

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.