unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
Subject: RE: global minor modes that can be overridden locally?
Date: Mon, 11 Dec 2006 21:00:54 -0800	[thread overview]
Message-ID: <EIENLHALHGIMHGDOLMIMOEGLCNAA.drew.adams@oracle.com> (raw)
In-Reply-To: <buozm9t3fmb.fsf@dhapc248.dev.necel.com>

> > Uh, I never heard of global-*-mode. Is that documented?
>
> global-auto-composition-mode ...

Actually, I had heard of (and used) global-font-lock-mode. I hadn't thought
about it.

> > I define a global minor mode using define-minor-mode with
> > :global, and M-x foo-mode is the global toggle for it.
> > There is no global-foo-mode defined
> > for my mode by define-minor-mode with :global.
>
> You are confusing two slightly different situations.
>
> There are "true" global modes, which _only_ have a global effect, and
> wouldn't make sense as a local mode; an example is `tool-bar-mode'.
> Such modes are called FOO-mode because it is the obvious name (and
> adding "global-" to the beginning would be pointless and annoying).

I sure agree about that last part.

> However there are global modes which are actually the effect of applying
> a local mode globally, that is, they enable or disable the corresponding
> local mode in all buffers.  Such modes are called global-FOO-mode,
> because the fundamental mode in question is the local FOO-mode, and
> global-FOO-mode is merely a convenient adjunct.

Ah, I didn't know that. Sorry if I confused things. I don't know if anything
I wrote on this earlier in this thread makes any sense for that context. I
had in mind only the other sort (the "truly" global sort) of global minor
mode. I thought that someone was asking to be able to locally override a
(truly) global mode locally, and I was proposing a way to perhaps do that.
>From what you say, there is probably no need for what I suggested. Sorry for
the noise.

In the version of Emacs 22 I was using, there was nothing about
define-global-minor-mode in the manual. I picked up a new Emacs binary today
(thanks to Lennart), however, and I see it there now.

I wonder, however, if the terminology might not be confusing. The "pseudo"
global minor modes are not the same thing as the "true" global minor modes,
but it is they that result from using the macro named
`define-global-minor-mode'. And the resulting mode names `global-*-mode'
also seem to hinder clarity in the same way. Couldn't this be made clearer
with some better choice of terminology? If the normal, "true" global minor
mode is not the one that has "global" written all over it, then aren't we
asking for trouble? And aren't we asking for trouble just by having two
different animals that are both referred to as "global" minor modes?

The local-turned-global beasts were not in my build of July, AFAICT.
Assuming that they fit a real need, shouldn't we perhaps revisit the
terminology? I don't have a good terminology suggestion (yet) - I'm still
not too clear on their raison d'etre. Maybe someone can suggest a better way
to talk about these different kinds of critters?

It sounds like the pseudo global modes are not global modes, but local modes
that are applied globally. If that's the case, then perhaps that's the best
way to speak of them: don't call them global, but speak of them being
applied globally. Perhaps rename `define-global-minor-mode' to
`make-minor-mode-global' (a la `make-variable-buffer-local'), since the
input is a minor mode and you are, in effect, making it serve globally
(IIUC). Even that characterization of being applied globally (vs being
inherently global) sounds like too fine a nuance and a possible source of
confusion, however.

One way or the other, I think there will need to be some distinction made in
the doc, to guide people toward using one or the other sort of global mode,
depending on their different needs. Miles's explanation is a start and
helped me, and that explanation is missing from the doc, AFAICT.

  reply	other threads:[~2006-12-12  5:00 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <17721.60660.980363.609046@kahikatea.snap.net.nz>
2006-10-23  5:11 ` highlight-changes-mode Richard Stallman
2006-10-23 18:39   ` highlight-changes-mode Richard Stallman
2006-10-24  0:16     ` highlight-changes-mode rsharman
2006-10-24 17:43       ` highlight-changes-mode Richard Stallman
2006-11-27  1:57         ` highlight-changes-mode rsharman
2006-11-27  6:43           ` highlight-changes-mode Nick Roberts
2006-11-28  2:15             ` highlight-changes-mode rsharman
2006-12-06  6:25             ` highlight-changes-mode rsharman
2006-12-06  6:37               ` highlight-changes-mode rsharman
2006-12-06 18:44               ` highlight-changes-mode Richard Stallman
2006-12-06 19:58                 ` highlight-changes-mode Drew Adams
2006-12-07 21:02                   ` highlight-changes-mode Richard Stallman
2006-12-07 21:13                     ` highlight-changes-mode Drew Adams
2006-12-09 18:55                       ` global minor modes that can be overridden locally? [was: highlight-changes-mode] Drew Adams
2006-12-11  1:06                         ` Richard Stallman
2006-12-11  1:16                           ` Lennart Borgman
2006-12-11  1:45                             ` Drew Adams
2006-12-11  1:52                               ` Lennart Borgman
2006-12-11  1:58                                 ` Drew Adams
2006-12-12  2:57                             ` Richard Stallman
2006-12-12  3:27                               ` Lennart Borgman
2006-12-12 21:45                                 ` Richard Stallman
2006-12-12 23:02                                   ` Lennart Borgman
2006-12-12  4:06                               ` Drew Adams
2006-12-12  4:25                                 ` global minor modes that can be overridden locally? Miles Bader
2006-12-12  5:00                                   ` Drew Adams [this message]
2006-12-29 16:25                                     ` Drew Adams
2006-12-29 22:15                                       ` Stefan Monnier
2006-12-29 22:40                                         ` Drew Adams
2006-12-30  6:24                                           ` Richard Stallman
2006-12-30  8:25                                             ` Drew Adams
2006-12-31  1:46                                               ` Richard Stallman
2006-12-30 22:43                                             ` Kim F. Storm
2006-12-30 23:27                                               ` Lennart Borgman (gmail)
2006-12-30  6:23                                       ` Richard Stallman
2006-12-12 11:08                                   ` Juanma Barranquero
2006-12-12 11:15                                     ` Miles Bader
2006-12-12 11:25                                       ` Juanma Barranquero
2006-12-12 11:33                                         ` Miles Bader
2006-12-12 11:59                                           ` Juanma Barranquero
2006-12-11  1:40                           ` global minor modes that can be overridden locally? [was:highlight-changes-mode] Drew Adams
2006-12-12  2:58                             ` Richard Stallman
2006-12-12  4:08                               ` global minor modes that can be overridden locally?[was:highlight-changes-mode] Drew Adams
2006-12-12 21:45                                 ` Richard Stallman
2006-12-06 23:39                 ` highlight-changes-mode rsharman
2006-12-07 21:03                   ` highlight-changes-mode Richard Stallman
2006-12-09 19:40                     ` highlight-changes-mode rsharman
2006-12-11  1:06                       ` highlight-changes-mode Richard Stallman
2006-12-11  9:15                         ` highlight-changes-mode Kim F. Storm
2006-12-12  2:58                           ` highlight-changes-mode Richard Stallman
2006-12-12  3:16                         ` highlight-changes-mode rsharman
2006-12-12 21:45                           ` highlight-changes-mode Richard Stallman
2006-12-12 23:33                             ` highlight-changes-mode rsharman
2006-12-14  5:29                               ` highlight-changes-mode Richard Stallman
2006-11-27 15:38           ` highlight-changes-mode Richard Stallman
2006-11-28  2:04             ` highlight-changes-mode rsharman
2006-12-05  2:42               ` highlight-changes-mode rsharman

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=EIENLHALHGIMHGDOLMIMOEGLCNAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.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).