all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier via "Emacs development discussions." <emacs-devel@gnu.org>
To: emacs-devel@gnu.org
Subject: Re: Turning on/off tree-sitter modes
Date: Fri, 29 Nov 2024 13:09:10 -0500	[thread overview]
Message-ID: <jwvv7w6x72u.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: 86r072krq5.fsf@gnu.org

> Here are the issues that are currently not handled by your patch,
> which perhaps require modifications and additions (but should probably
> be discussed first):
>
>   . we need the ability to turn on and off selected TS-based modes,
>     and do it easily
>   . we should include in this feature handling of all the TS-based
>     modes in core (right now, I don't see python-ts-mode,
>     ruby-ts-mode, and csharp-ts-mode, at least)
>   . we should decide how to handle TS-based modes whose non-TS
>     counterparts are available as 3rd-party packages
>   . we should decide whether we want to modify auto-mode-alist or use
>     major-mode remapping for all the TS-based modes

I remember writing a description of the UI I had in mind but can't find
it again, so maybe I failed/forgot to send it?

In any case I was thinking of a UI that's not specific to tree-sitter
that works as follows:

   (defun change-major-mode (newmode)
     (interactive (list (read-the-new-mode)))
     (cond
      ((eq major-mode (the-mode-normally-selected-by-auto-mode-alist))
       (setf (alist-get major-mode major-mode-remap-alist) newmode)
       (when (called-interactively-p)
         (customize-mark-as-set 'major-mode-remap-alist)))
      (t
       (let ((regexp (guess-regexp buffer-file-name)))
         (add-to-list 'auto-mode-alist (cons regexp newmode))
         (when (called-interactively-p)
           ...somehow convince Custom to do the above `add-to-list`...))))
     (funcall newmode))


`read-the-new-mode` could use a variable like Dmitry's
`treesit--mode-associations` to provide good defaults.

BTW, this var shouldn't be set like in his patch, IMO but via

    ###;;;autoload
    (add-to-list 'treesit--mode-associations (javascript-mode . js-ts-mode))

  and its name should not be treesitter-specific either, then.

We could also have a command `treesit-enable-all-mode` which uses
a variable `treesit-mode-grammars` (an alist mapping modes to grammars,
setup via the same kind of autoload+add-to-list as above), to add to
`major-mode-remap-alist` all the TS modes for which the user has
installed the corresponding grammar.


        Stefan




  parent reply	other threads:[~2024-11-29 18:09 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-06  7:32 An anonymous IRC user's opinion Abraham S.A.H. via Emacs development discussions.
2024-10-06  8:10 ` Emanuel Berg
2024-10-06  8:44 ` Dr. Arne Babenhauserheide
2024-10-06  9:01   ` Emanuel Berg
2024-10-06  9:09   ` Emanuel Berg
2024-10-06  9:32   ` Abraham S.A.H. via Emacs development discussions.
2024-10-06 11:28     ` Dr. Arne Babenhauserheide
2024-10-06 13:10       ` Emanuel Berg
2024-10-06 12:55     ` Emanuel Berg
2024-10-09  3:29       ` Richard Stallman
2024-10-09 20:20         ` Emanuel Berg
2024-10-10  8:57           ` Dr. Arne Babenhauserheide
2024-10-09  3:30   ` Richard Stallman
2024-10-09  6:48     ` Dr. Arne Babenhauserheide
2024-10-09 20:22       ` Emanuel Berg
2024-10-09 11:09     ` Johan Myréen
2024-10-09 13:13       ` Eli Zaretskii
2024-10-09 13:38         ` tomas
2024-10-09 16:02         ` Dr. Arne Babenhauserheide
2024-10-09 16:22           ` Eli Zaretskii
2024-10-09 21:55           ` Emanuel Berg
2024-10-10  7:25             ` Eli Zaretskii
2024-10-10  9:35               ` Dr. Arne Babenhauserheide
2024-10-10 10:42                 ` Eli Zaretskii
2024-10-13  3:29               ` Richard Stallman
2024-10-10  6:07           ` Emanuel Berg
2024-10-09 16:06         ` Johan Myréen
2024-10-09 16:12           ` Ship Mints
2024-10-09 16:25           ` Eli Zaretskii
2024-10-09 21:25         ` Dmitry Gutov
2024-10-10  4:56           ` Eli Zaretskii
2024-10-10  5:14             ` Xiyue Deng
2024-10-10  6:36               ` Eli Zaretskii
2024-10-10  6:59                 ` Xiyue Deng
2024-10-11 20:30             ` Dmitry Gutov
2024-10-12  7:34               ` Eli Zaretskii
2024-10-12 20:27                 ` Dmitry Gutov
2024-10-12 21:00                   ` Dr. Arne Babenhauserheide
2024-10-13  4:53                     ` Eli Zaretskii
2024-10-13  6:28                       ` Dr. Arne Babenhauserheide
2024-10-13  4:41                   ` Eli Zaretskii
2024-10-13  9:37                     ` Dmitry Gutov
2024-10-13 10:39                       ` Eli Zaretskii
2024-10-13 15:31                         ` Dmitry Gutov
2024-10-13 15:53                           ` Eli Zaretskii
2024-10-14  9:32                             ` Dmitry Gutov
2024-10-14 11:09                               ` Alan Mackenzie
2024-10-15  1:41                                 ` Dmitry Gutov
2024-10-14 14:16                               ` Eli Zaretskii
2024-10-15  1:36                                 ` Dmitry Gutov
2024-10-15 12:03                                   ` Eli Zaretskii
2024-11-03  3:10                                     ` Dmitry Gutov
2024-11-03  6:37                                       ` Eli Zaretskii
2024-11-03 19:24                                         ` Dmitry Gutov
2024-11-04 12:04                                           ` Eli Zaretskii
2024-11-04 12:11                                           ` Eli Zaretskii
2024-11-04 17:41                                             ` Dmitry Gutov
2024-11-04 19:18                                               ` Eli Zaretskii
2024-11-04 20:59                                                 ` Dmitry Gutov
2024-11-05 12:11                                                   ` Eli Zaretskii
2024-11-05 17:05                                                     ` Dmitry Gutov
2024-11-05 17:28                                                       ` Eli Zaretskii
2024-11-05 19:40                                                         ` Dmitry Gutov
2024-11-05 19:53                                                           ` Eli Zaretskii
2024-11-05 20:59                                                             ` Dmitry Gutov
2024-11-06 12:15                                                               ` Eli Zaretskii
2024-11-06 12:46                                                                 ` Dmitry Gutov
2024-11-06 13:25                                                                   ` Eli Zaretskii
2024-11-06 16:07                                                                     ` Dmitry Gutov
2024-11-06 17:14                                                                       ` Eli Zaretskii
2024-11-19  2:44                                                                         ` Dmitry Gutov
2024-11-19 15:41                                                                           ` Eli Zaretskii
2024-11-19 16:13                                                                             ` Dmitry Gutov
2024-11-19 17:10                                                                               ` Eli Zaretskii
2024-11-19 17:40                                                                                 ` Dmitry Gutov
2024-11-19 17:47                                                                                   ` Eli Zaretskii
2024-11-19 17:56                                                                                     ` Dmitry Gutov
2024-11-19 19:01                                                                                       ` Eli Zaretskii
2024-11-19 20:12                                                                                         ` Dmitry Gutov
2024-11-20 12:59                                                                                           ` Eli Zaretskii
2024-11-20 18:38                                                                                             ` Dmitry Gutov
2024-11-20 19:01                                                                                               ` Eli Zaretskii
2024-11-20 19:23                                                                                                 ` Dmitry Gutov
2024-11-20 19:55                                                                                                   ` Eli Zaretskii
2024-11-20 19:57                                                                                                     ` Dmitry Gutov
2024-11-21  5:46                                                                                                       ` Eli Zaretskii
2024-11-21 19:47                                                                                                         ` Dmitry Gutov
2024-11-21 20:03                                                                                                           ` Eli Zaretskii
2024-11-21 20:11                                                                                                             ` Dmitry Gutov
2024-11-21 20:24                                                                                                               ` Eli Zaretskii
2024-11-21 20:56                                                                                                                 ` Dmitry Gutov
2024-11-22  6:44                                                                                                                   ` Eli Zaretskii
2024-11-22 15:08                                                                                                                     ` Dmitry Gutov
2024-11-23 13:24                                                                                                                       ` Turning on/off tree-sitter modes (was: An anonymous IRC user's opinion) Eli Zaretskii
2024-11-23 16:26                                                                                                                         ` Turning on/off tree-sitter modes Dmitry Gutov
2024-11-23 16:36                                                                                                                           ` Eli Zaretskii
2024-11-24  2:40                                                                                                                             ` Dmitry Gutov
2024-11-24 13:59                                                                                                                             ` Steinar Bang
2024-11-23 17:51                                                                                                                           ` Juri Linkov
2024-11-23 18:50                                                                                                                             ` Eli Zaretskii
2024-11-23 19:23                                                                                                                               ` Juri Linkov
2024-11-24  2:21                                                                                                                                 ` Dmitry Gutov
2024-11-24 15:28                                                                                                                                   ` Stefan Monnier
2024-11-24  5:32                                                                                                                               ` Commands that change user options? [was: Turning on/off tree-sitter modes] Drew Adams
2024-11-24 10:23                                                                                                                               ` Turning on/off tree-sitter modes Stephen Berman
2024-11-24  2:29                                                                                                                             ` Dmitry Gutov
2024-11-24  7:29                                                                                                                               ` Juri Linkov
2024-11-24  8:06                                                                                                                                 ` Eli Zaretskii
2024-11-24 17:29                                                                                                                                   ` Juri Linkov
2024-11-24 18:56                                                                                                                                     ` Eli Zaretskii
2024-11-25  0:44                                                                                                                                       ` Dmitry Gutov
2024-11-25  7:24                                                                                                                                         ` Juri Linkov
2024-11-25 12:09                                                                                                                                         ` Eli Zaretskii
2024-11-26  0:35                                                                                                                                           ` Dmitry Gutov
2024-11-26  0:40                                                                                                                                             ` Dmitry Gutov
2024-11-26 14:30                                                                                                                                               ` Eli Zaretskii
2024-11-26 14:29                                                                                                                                             ` Eli Zaretskii
2024-11-26 18:42                                                                                                                                               ` Dmitry Gutov
2024-11-26 18:45                                                                                                                                                 ` Dmitry Gutov
2024-11-26 20:16                                                                                                                                                   ` Eli Zaretskii
2024-11-26 21:36                                                                                                                                                     ` Dmitry Gutov
2024-11-26 20:16                                                                                                                                                 ` Eli Zaretskii
2024-11-26 20:32                                                                                                                                                   ` Dmitry Gutov
2024-11-27  7:27                                                                                                                                               ` Juri Linkov
2024-11-27 12:36                                                                                                                                                 ` Dmitry Gutov
2024-11-28  7:58                                                                                                                                                   ` Juri Linkov
2024-11-28 18:50                                                                                                                                                     ` Dmitry Gutov
2024-11-28 19:34                                                                                                                                                       ` Juri Linkov
2024-11-28 19:51                                                                                                                                                         ` Dmitry Gutov
2024-11-29  7:17                                                                                                                                                           ` Juri Linkov
2024-11-29  7:05                                                                                                                                                         ` Eli Zaretskii
2024-11-26  4:54                                                                                                                         ` Turning on/off tree-sitter modes (was: An anonymous IRC user's opinion) Richard Stallman
2024-11-26 15:17                                                                                                                           ` Eli Zaretskii
2024-11-29 18:09                                                                                                                         ` Stefan Monnier via Emacs development discussions. [this message]
2024-11-30  3:26                                                                                                                           ` Turning on/off tree-sitter modes Dmitry Gutov
2024-11-30  7:38                                                                                                                             ` Eli Zaretskii
2024-11-30 18:49                                                                                                                             ` Stefan Monnier
2024-12-02  2:04                                                                                                                               ` Dmitry Gutov
2024-12-02  2:58                                                                                                                                 ` Stefan Monnier
2024-12-02 12:46                                                                                                                                   ` Eli Zaretskii
2024-12-02 12:41                                                                                                                               ` Eli Zaretskii
2024-12-03  3:30                                                                                                                                 ` Stefan Monnier
2024-12-03 12:45                                                                                                                                   ` Eli Zaretskii
2024-12-03 13:26                                                                                                                                     ` Stefan Monnier
2024-12-03 14:14                                                                                                                                       ` Eli Zaretskii
2024-12-03 14:55                                                                                                                                         ` Stefan Monnier
2024-12-03 16:45                                                                                                                                           ` Eli Zaretskii
2024-12-03 17:10                                                                                                                                             ` Stefan Monnier
2024-12-03 17:14                                                                                                                                               ` Eli Zaretskii
2024-12-04  1:47                                                                                                                                           ` Dmitry Gutov
2024-12-04  2:14                                                                                                                                             ` Stefan Monnier
2024-12-04 12:56                                                                                                                                             ` Eli Zaretskii
2024-12-04 13:12                                                                                                                                               ` Dmitry Gutov
2024-11-30 18:24                                                                                                                           ` Juri Linkov
2024-11-19 17:59                                                                           ` An anonymous IRC user's opinion Juri Linkov
2024-11-19 19:52                                                                             ` Dmitry Gutov
2024-11-20 16:47                                                                             ` Philip Kaludercic
2024-11-20 17:36                                                                               ` Juri Linkov
2024-11-20 18:07                                                                               ` Dmitry Gutov
2024-11-05 13:21                                                 ` Dr. Arne Babenhauserheide
2024-11-05 13:47                                                   ` Eli Zaretskii
2024-11-05 16:52                                                     ` Dr. Arne Babenhauserheide
2024-11-05 17:22                                                       ` Eli Zaretskii
2024-11-05 17:49                                                         ` Philip Kaludercic
2024-11-05 19:23                                                           ` Dr. Arne Babenhauserheide
2024-11-06  0:09                                                             ` Philip Kaludercic
2024-11-06  9:35                                                               ` Dr. Arne Babenhauserheide
2024-11-06  9:59                                                                 ` Philip Kaludercic
2024-11-07 14:16                                                                 ` Automatic Suggestion of Packages Philip Kaludercic
2024-11-07 16:07                                                                   ` Visuwesh
2024-11-07 21:50                                                                     ` Philip Kaludercic
2024-11-08  4:15                                                                       ` Visuwesh
2024-11-08  4:29                                                                         ` Visuwesh
2024-11-08 14:02                                                                         ` Philip Kaludercic
2024-11-08 15:44                                                                           ` Visuwesh
2024-11-08 16:23                                                                             ` Philip Kaludercic
2024-11-11 20:07                                                                   ` Mekeor Melire
2024-11-12  3:00                                                                     ` Philip Kaludercic
2024-10-13 10:52                       ` An anonymous IRC user's opinion Dr. Arne Babenhauserheide
2024-10-10 13:58     ` Richard Stallman
2024-10-10 14:45       ` Dr. Arne Babenhauserheide
2024-10-12  3:19         ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvv7w6x72u.fsf-monnier+emacs@gnu.org \
    --to=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.