From: Alan Mackenzie <acm@muc.de>
To: Stefan Kangas <stefankangas@gmail.com>
Cc: acm@muc.de, Eli Zaretskii <eliz@gnu.org>,
Stefan Monnier <monnier@iro.umontreal.ca>,
74339@debbugs.gnu.org
Subject: bug#74339: 30.0.92; CC Mode stomps C TS Mode
Date: Fri, 15 Nov 2024 21:56:03 +0000 [thread overview]
Message-ID: <ZzfDc2upzcx1iLPN@MAC.fritz.box> (raw)
In-Reply-To: <CADwFkm=O1kP_46BRYxfXi7fYZfqMkgPnQZJXTWARiNc7UstjpQ@mail.gmail.com>
Hello, Stefan.
On Fri, Nov 15, 2024 at 12:58:02 -0800, Stefan Kangas wrote:
> Alan Mackenzie <acm@muc.de> writes:
> > On Fri, Nov 15, 2024 at 14:01:26 -0500, Stefan Monnier wrote:
[ .... ]
> > Here is a section of a test file sent to bug-cc-mode some while ago:
> > /*
> > ** Local Variables:
> > ** mode:c
> > ** indent-tabs-mode:nil
> > ** c-basic-offset:4
> > ** End:
> > */
> > Here it is evident that by "mode:c" the OP means C Mode, not whatever
> > random mode happens to have taken the symbol `c-mode'.
> Yes, that is how Emacs behaves by default.
Only sort of, now.
> However, the point of the new feature, major-mode-remap, is exactly to
> allow users to override that.
No, it is only _approximately_ for that. major-mode-remap-alist is for
that. Modes using major-mode-remap-defaults override that setting
without the users have much of a say.
> This new feature is optional, and AFAICT the user choice is explicit
> and not "random".
No, that is the problem. Have a look at major-mode-remap-defaults, and
how c-ts-mode uses it to cause the symbol `c-mode' to start c-ts-mode in
certain circumstances. This is what I'm unhappy about.
> Clearly, c-mode is still favored, as it is the default, and many of us
> continue being happy users of it even while running a treesitter build.
> So this new feature very clearly only affects users that have somehow
> explicitly indicated that they want to use c-ts-mode instead.
That "somehow" is the loading of c-ts-mode. I think that even C-h f
c-ts-mode counts as an "explicit indication" of a supposed preference for
c-ts-mode, given that it loads c-ts-mode (if it actually does).
I don't think the current mechanism is ready for the release of Emacs 30.
It hasn't been thought through thoroughly.
> >> > .. This will cause the buffer to start in c-ts-mode regardless of any
> >> > other current settings.
> >> Actually, no: `major-mode-remap-*` can also remap `c-ts-mode` to some
> >> other mode, such as `c-mode`.
> > Maybe I should have said "regardless of any non-crazy settings".
> What makes anything about that setting crazy?
I think making a setting for c-ts-mode in order to get a buffer into
c-mode is crazy. It is not the first thing one thinks about, faced with
the problem of a buffer going into the wrong mode.
> I'd use that setting, if I ever ran into any files with a "-*- c-ts -*-"
> cookie. Similarly, I expect that c-ts-mode users will want to use
> c-ts-mode precisely when a file has a "-*- c -*-" cookie.
We don't have fine enough control. /* mode: c */ followed by /*
c-basic-offset: 4 */ in the Local Variables: section is a sure sign that
C Mode is intended, not a random C handling mode.
What I think we're lacking is an explicit setting or command for the user
to state what her preferred mode for C actually is.
major-mode-remap-alist isn't that setting - it's too involved, too
awkward, and it talks about "remappinig modes" (its internal mechanism)
rather than the user's preferred Mode for C. What we need is a defcustom
3-valued radio-button defaulting to "no explicit preference", and having
other values "c-mode" and "c-ts-mode".
> Again, being able to do that is exactly the point of major-mode-remap.
> I struggle to understand why that flexibility is controversial. It
> puts more power into users' hands, that's all.
It involves c-ts-mode purloining CC Mode's symbols for its own use. If a
user wishes to use major-mode-remap-alist for that, that's one thing -
having it done by default in major-mode-remap-defaults by Emacs is
something quite different, which I think is unacceptable.
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2024-11-15 21:56 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-13 14:00 bug#74339: 30.0.92; CC Mode stomps C TS Mode Eli Zaretskii
2024-11-13 15:13 ` Eli Zaretskii
2024-11-13 18:58 ` Alan Mackenzie
2024-11-13 20:13 ` Eli Zaretskii
2024-11-13 22:34 ` Alan Mackenzie
2024-11-13 22:57 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 6:59 ` Eli Zaretskii
2024-11-14 9:24 ` Dmitry Gutov
2024-11-14 10:05 ` Eli Zaretskii
2024-11-16 20:54 ` Andrea Corallo
2024-11-14 15:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 16:29 ` Dmitry Gutov
2024-11-14 16:49 ` Eli Zaretskii
2024-11-14 17:16 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 19:10 ` Eli Zaretskii
2024-11-14 19:45 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 16:20 ` Alan Mackenzie
2024-11-14 16:59 ` Eli Zaretskii
2024-11-14 17:45 ` Alan Mackenzie
2024-11-14 17:52 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 19:23 ` Eli Zaretskii
2024-11-14 19:53 ` Alan Mackenzie
2024-11-14 20:21 ` Eli Zaretskii
2024-11-14 20:38 ` Alan Mackenzie
2024-11-14 21:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 21:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-15 8:17 ` Eli Zaretskii
2024-11-15 16:17 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-15 8:13 ` Eli Zaretskii
2024-11-15 7:33 ` Eli Zaretskii
2024-11-15 13:04 ` Alan Mackenzie
2024-11-15 14:43 ` Eli Zaretskii
2024-11-15 17:58 ` Alan Mackenzie
2024-11-15 19:01 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-15 19:46 ` Alan Mackenzie
2024-11-15 20:45 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-16 10:25 ` Eli Zaretskii
2024-11-16 14:03 ` Stefan Kangas
2024-11-16 14:35 ` Eli Zaretskii
2024-11-15 20:58 ` Stefan Kangas
2024-11-15 21:56 ` Alan Mackenzie [this message]
2024-11-16 3:22 ` Stefan Kangas
2024-11-16 11:45 ` Eli Zaretskii
2024-11-16 18:17 ` Alan Mackenzie
2024-11-16 6:17 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-16 8:18 ` Eli Zaretskii
[not found] ` <Zzi86KPmTv1Qb3nw@MAC.fritz.box>
[not found] ` <86ttc7f7jo.fsf@gnu.org>
2024-11-16 21:56 ` Alan Mackenzie
2024-11-17 6:31 ` Eli Zaretskii
2024-11-16 9:52 ` Eli Zaretskii
2024-11-15 18:57 ` Dmitry Gutov
2024-11-21 7:57 ` Eli Zaretskii
2024-11-21 13:57 ` Alan Mackenzie
2024-11-21 19:02 ` Dmitry Gutov
2024-11-21 19:48 ` Eli Zaretskii
2024-11-23 19:40 ` Eli Zaretskii
2024-11-24 2:56 ` Dmitry Gutov
2024-11-24 5:27 ` Eli Zaretskii
2024-11-25 1:16 ` Dmitry Gutov
2024-11-25 12:11 ` Eli Zaretskii
2024-11-25 23:40 ` Dmitry Gutov
2024-11-26 14:26 ` Eli Zaretskii
2024-11-26 22:06 ` Dmitry Gutov
2024-11-27 3:28 ` Eli Zaretskii
2024-11-27 12:34 ` Dmitry Gutov
2024-11-28 14:56 ` Eli Zaretskii
2024-11-24 15:37 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-24 16:01 ` Christopher Dimech via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-24 16:30 ` Eli Zaretskii
2024-11-24 16:27 ` Eli Zaretskii
2024-11-24 16:47 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-25 0:57 ` Dmitry Gutov
2024-11-24 4:35 ` Richard Stallman
2024-11-24 7:41 ` Eli Zaretskii
2024-11-14 17:29 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 19:20 ` Eli Zaretskii
2024-11-14 19:38 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 20:37 ` Eli Zaretskii
2024-11-14 20:58 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-14 22:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-15 12:02 ` Eli Zaretskii
2024-11-15 7:58 ` Eli Zaretskii
2024-11-15 16:12 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-16 20:51 ` Andrea Corallo
2024-11-13 20:28 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-13 20:42 ` Eli Zaretskii
2024-11-13 20:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
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=ZzfDc2upzcx1iLPN@MAC.fritz.box \
--to=acm@muc.de \
--cc=74339@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=stefankangas@gmail.com \
/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).