From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Dmitry Gutov <dmitry@gutov.dev>
Cc: emacs-devel@gnu.org
Subject: Re: Turning on/off tree-sitter modes
Date: Sun, 01 Dec 2024 21:58:37 -0500 [thread overview]
Message-ID: <jwvttbmvmbi.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <84e8cd47-6606-457e-b122-a639227f67a1@gutov.dev> (Dmitry Gutov's message of "Mon, 2 Dec 2024 04:04:49 +0200")
>> For the init file, we have things like
>> (add-to-list 'major-mode-remap-alist '(foo-mode . bar-mode))
>> so I don't see any need for anything new.
> We might need to solve this for go-ts-mode and etc having no "original" to
> remap from, though.
I think we first need to think about what it is the user needs to do
there and what Emacs should do. AFAICT with our current code,
emacs -Q foo.go
will never open that mode is the intended mode even if the Go grammar is
installed, so I think we should first fix that and only once that fixed
we can start thinking about what the user may want to do to choose
a specific mode.
>>>> and its name should not be treesitter-specific either, then.
>>> ...But perhaps you have a more general purpose in mind for them.
>> cperl-mode/perl-mode, latex-mode/LaTeX-mode, c-mode/sm-c-mode,
>> caml-mode/tuareg-mode, ...
> So like major-mode-remap-alternatives?
Yes, I like that suggestion.
>> I'd imagine `treesit-enable-all-modes` could emit a warning about
>> modes lacking a grammar when used interactively, and offer (maybe with
>> a C-u prefix) to install the grammars?
> Sounds reasonable. I was thinking it would be more economical to defer the
> checking of grammars until a mode is actually used (so you can enable them
> all wholesale, and then gradually install needed grammars), but that's not
> critical. Pros and cons either way.
Oh, indeed, we could also use `major-mode-remap-alist` to remap all
modes which have TS alternative to a function which checks if the
grammar is installed and then either calls the "normal" mode or the
TS-alternative.
> Also, there was a request to exclude some modes from the "enable all" action,
> too. I took that to mean that we need a user option.
I suspect in 99% of the cases, this can be done by refraining from
installing the grammar. And even if not, I can't see why we'd need
a new user option. Appropriate entries in `major-mode-remap-alist` seem
sufficient to register that kind of user choice.
AFAICT all we need is two or three functions/commands to cover those
common configuration needs, but they're just functions/commands, so we
could just as well provide 50 of them.
`major-mode-remap-alternatives` seems good for `change-major-mode` but
`treesit-enable-all-modes` would inevitably be TS-specific and would
need some info about "TS modes out there" as well as some mapping
between modes and their corresponding grammar, and that doesn't fit into
the remit of `major-mode-remap-alternatives`.
Stefan
next prev parent reply other threads:[~2024-12-02 2:58 UTC|newest]
Thread overview: 178+ 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 ` Turning on/off tree-sitter modes Stefan Monnier via Emacs development discussions.
2024-11-30 3:26 ` 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 [this message]
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-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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvttbmvmbi.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=dmitry@gutov.dev \
--cc=emacs-devel@gnu.org \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).