all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
To: "Eric M. Ludlam" <eric@siege-engine.com>
Cc: jasonr@gnu.org, lennart.borgman@gmail.com, sdl.web@gmail.com,
	monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: Multiple major modes
Date: Sun, 01 Jul 2007 16:40:12 -0400	[thread overview]
Message-ID: <E1I56DM-0006bO-6a@fencepost.gnu.org> (raw)
In-Reply-To: <200706251404.l5PE4dgc011720@projectile.siege-engine.com> (eric@siege-engine.com)

Please forgive my delay in studying your message and responding.

    >Currently, the idea is that major modes can make any global variable
    >buffer-local.  Are you suggesting we divide all variables into two
    >classes, those that can be and those that can't be?  If so, what is
    >the benefit of that?

    There would be two classes.

I don't entirely follow.  Two classes of what?  Two classes of variables?

If so, could you describe each of the two classes?

				 There would be values that are specific
    to the major mode, and variables that are local to just some buffer.
    The buffer local value would trump the mode-specific value, and any
    mode-specific value would trump the global value.

That part makes sense to me; but can't we make all kinds of bindings
possible for every variable?

    The mode-local feature I wrote (with a lot of help from David Ponce)
    works in all versions of Emacs commonly used today.  It does this work
    by modifying the buffer-local values for different major-modes.  It
    provides the concept of what a mode-local variable might be.  Ideally
    it would not operate this way, and instead have built-in support for
    real mode-local values and method tables.

That makes sense.  We could implement mode-local bindings at the low
level if that is what we want.

What should their semantics be?

      A side effect is that
    you could have minor modes that operate across both major modes in a
    single buffer, and that minor mode won't get tromped.

How would this work?

    It is obvious that if a mode-local type tool or syntax were adopted
    into Emacs, that it would be a big effort to transition everything to
    it.

I hope we can design the mechanism to avoid the need for pervasive
changes in the code of major modes.  Perhaps we would need to change
some of the current calls to make-local-variable to call some new
primitive, make-mode-variable, instead.  But even that would be a pain
if every major mode HAD to do it.

      The real advantage would come if the
    concepts were built into Emacs and the help system which could then
    show chains of values (For C-h v) or chains of function doc (for C-h f)
    based on mode.

I agree, that would be good to do.

  reply	other threads:[~2007-07-01 20:40 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-11 23:27 Should nXML be included Leo
2007-06-12 10:50 ` Lennart Borgman (gmail)
2007-06-12 11:21   ` Jason Rumney
2007-06-12 12:57     ` Lennart Borgman (gmail)
2007-06-12 13:42       ` Peter Heslin
2007-06-12 14:20       ` Jason Rumney
2007-06-12 15:06         ` Multiple major modes (was: Should nXML be included) Stefan Monnier
2007-06-12 15:15           ` Multiple major modes Leo
2007-06-12 18:48           ` Lennart Borgman (gmail)
2007-06-12 20:14             ` Re[2]: " Eric M. Ludlam
2007-06-12 21:04               ` Lennart Borgman (gmail)
2007-06-12 23:10                 ` Stefan Monnier
2007-06-13 16:22                   ` Richard Stallman
2007-06-13 16:22               ` Richard Stallman
2007-06-19  2:09                 ` Re[2]: " Eric M. Ludlam
2007-06-24 14:41                   ` Richard Stallman
2007-06-25 14:04                     ` Re[2]: " Eric M. Ludlam
2007-07-01 20:40                       ` Richard Stallman [this message]
2007-07-05  2:29                         ` Eric M. Ludlam
2007-07-05 20:34                           ` Richard Stallman
2007-07-01 20:40                       ` Richard Stallman
2007-07-04 16:35                         ` T. V. Raman
2007-07-04 17:01                           ` David Kastrup
2007-07-05  1:31                           ` Richard Stallman
2007-07-05 14:49                             ` Stefan Monnier
2007-07-06  4:38                               ` Richard Stallman
2007-07-06  6:01                                 ` Stephen J. Turnbull
2007-07-07 13:07                                   ` Richard Stallman
2007-07-07 14:13                                     ` Lennart Borgman (gmail)
2007-07-08 16:56                                       ` Richard Stallman
2007-09-04  9:03                                         ` Highlight advice (was: Multiple major modes) Johan Bockgård
2007-07-07 17:43                                     ` Multiple major modes Stephen J. Turnbull
2007-07-06 16:00                                 ` Stefan Monnier
2007-07-06 16:10                                   ` Drew Adams
2007-07-07 13:06                                     ` Richard Stallman
2007-07-07 17:21                                       ` Stephen J. Turnbull
2007-07-08 16:55                                         ` Richard Stallman
2007-07-09  5:29                                           ` Stephen J. Turnbull
2007-07-09 17:21                                             ` Richard Stallman
2007-07-07  0:48                             ` Johan Bockgård
2007-07-05  1:44                         ` Re[2]: " Eric M. Ludlam
2007-07-08 22:23                           ` Richard Stallman
2007-07-09  0:49                             ` Re[2]: " Eric M. Ludlam
2007-07-09 17:21                               ` Richard Stallman
2007-06-12 13:26   ` Should nXML be included Stefan Monnier
2007-06-12 13:16 ` Peter Heslin
2007-06-12 13:11   ` Leo
2007-06-12 13:59     ` joakim
2007-06-12 14:17       ` Peter Heslin
2007-06-12 14:14         ` David Kastrup
2007-06-12 15:11           ` Stefan Monnier
2007-06-13  8:06           ` Richard Stallman
2007-06-13 17:45             ` Claus
2007-06-14 16:19               ` Richard Stallman
2007-06-14 16:28                 ` Leo
2007-06-15 19:21                   ` Richard Stallman
2007-06-14 17:44                 ` Eric Hanchrow
  -- strict thread matches above, loose matches on Subject: below --
2008-06-10 21:26 Multiple Major Modes Nordlöw
2008-06-10 21:47 ` Lennart Borgman (gmail)
2008-06-11  5:42 ` William Xu
2009-10-29  9:45 Nordlöw
2009-10-29 13:40 ` Pascal J. Bourguignon
2009-10-29 20:04 ` Joost Kremers
2009-10-29 22:14   ` Lennart Borgman
     [not found]   ` <mailman.9707.1256854525.2239.help-gnu-emacs@gnu.org>
2009-10-29 23:03     ` Pascal J. Bourguignon
2009-10-29 23:49       ` Lennart Borgman
     [not found]       ` <mailman.9710.1256860199.2239.help-gnu-emacs@gnu.org>
2009-10-30  0:52         ` Pascal J. Bourguignon
2009-10-30  3:28     ` Joseph Brenner
2009-11-01 23:14       ` Lennart Borgman
     [not found]       ` <mailman.9873.1257117309.2239.help-gnu-emacs@gnu.org>
2009-12-11  6:19         ` Joseph Brenner
2009-12-11 17:08           ` Lennart Borgman
2009-12-11 21:57             ` Joe Brenner
2009-12-11 22:06               ` Lennart Borgman
2009-12-12  2:16                 ` Joe Brenner
2009-12-12  2:18                   ` Lennart Borgman
2009-12-12  2:37                     ` Joe Brenner
2009-11-01 21:24 ` Dave Love
2009-11-02 12:32   ` Lennart Borgman
2009-11-02 14:01   ` Richard Riley
2009-11-02 14:22     ` Lennart Borgman
2009-11-02 14:28       ` Richard Riley
2009-11-02 14:44         ` Richard Riley
2009-11-02 15:11     ` Richard Riley

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=E1I56DM-0006bO-6a@fencepost.gnu.org \
    --to=rms@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=eric@siege-engine.com \
    --cc=jasonr@gnu.org \
    --cc=lennart.borgman@gmail.com \
    --cc=monnier@iro.umontreal.ca \
    --cc=sdl.web@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 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.