all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: rgm@gnu.org, andreas.roehler@online.de, emacs-devel@gnu.org
Subject: Re: Abbrev tables in elisp with some extra stuff
Date: Sat, 13 Oct 2007 02:41:08 -0400	[thread overview]
Message-ID: <E1IgagO-0001QC-Fh@fencepost.gnu.org> (raw)
In-Reply-To: <jwvd4vkrqr4.fsf-monnier+emacs@gnu.org> (message from Stefan Monnier on Fri, 12 Oct 2007 17:26:06 -0400)

    In my experience, this exception usually holds for groups of abbreviations
    or even for all abbrevs defined in a mode (typically for skeleton-abbrevs),
    so it seems convenient to set it once and for all for the whole group.

The simple, natural, and general interface is to specify this per
abbrev.  Please provide and document that method.

Likewise for :enable-function.

    > If we have some abbrevs that are from skeletons, and some abbrevs that
    > are not, we don't want to have to put them in different abbrev tables.

    Why not?

Because you should not have to know that a certain mode uses two
abbrev tables and choose the right one.

    > The right way to do this is to have minor-mode-abbrev-table-alist
    > which would work like minor-mode-map-alist.

    We could do that as well, but it didn't seem to be much better and makes for
    more complex processing in expand-abbrev which is likely to be more often
    executed than enabling/disabling minor modes.  As long as the minor mode is
    enabled/disabled via the function, we can provide the same behavior in
    either case.

That is precisely what I want to avoid.  It is unclean that minor
modes have to be turned on or off by a function.

Would you please implement minor-mode-abbrev-table-alist?

    > Using `labels' in this way also requires an explanation
    > of why it is written this way.

    It's just so as to use lexical scoping, which is much cleaner than going
    through the gensym rigmarole.

    > Did you try to write it in a more straightforward way, without
    > `labels'?  If so, what was the problem with that approach?

    lexical scoping *is* the straightforward way.

I had to struggle to understand it.  Please see if this can
be implemented straightforwardly in another way, without `labels'.

    >     +(defun write--abbrev (sym)
    > This name should start with `internal-'.
    >     +(defun describe--abbrev (sym)
    > Likewise.

    I like the "--" convention used in a few other packages, mostly because it
    still sticks to the normal prefix.

Which packages do you have in mind?

  reply	other threads:[~2007-10-13  6:41 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-20 17:48 Abbrev should preserve case Andreas Röhler
2007-06-20 22:18 ` Glenn Morris
2007-06-21  3:47   ` Davis Herring
2007-06-21  4:14     ` Stefan Monnier
2007-06-21  7:10       ` Andreas Röhler
2007-06-21  8:01         ` Stefan Monnier
2007-06-21  9:00           ` Andreas Röhler
2007-06-21  7:00     ` Glenn Morris
2007-06-21 17:32   ` Richard Stallman
2007-06-21 19:02     ` Stefan Monnier
2007-06-22 16:25       ` Richard Stallman
2007-06-22 17:51         ` Stefan Monnier
2007-06-22 21:53           ` Richard Stallman
2007-10-10 21:14             ` Abbrev tables in elisp with some extra stuff (was: Abbrev should preserve case) Stefan Monnier
2007-10-11 19:57               ` Andreas Röhler
2007-10-12 15:59               ` Richard Stallman
2007-10-12 21:26                 ` Abbrev tables in elisp with some extra stuff Stefan Monnier
2007-10-13  6:41                   ` Richard Stallman [this message]
2007-10-14 17:45                     ` Andreas Röhler
2007-10-15 16:04                       ` Richard Stallman
2007-10-15 18:04                         ` Andreas Röhler
2007-10-16  4:10                           ` Richard Stallman
2007-10-16 20:26                   ` Stefan Monnier
2007-10-17  5:03                     ` Richard Stallman
2007-10-17 14:10                     ` Richard Stallman
2007-10-17 20:48                     ` Richard Stallman
2007-10-24  2:21                       ` Stefan Monnier
2007-10-25  2:10                         ` Richard Stallman
2007-10-26  5:44                           ` Testing new abbrev tables in elisp Stefan Monnier
2007-10-26 19:13                             ` Andreas Röhler
2007-10-26 21:38                               ` Stefan Monnier
2007-10-28 14:13                                 ` Andreas Röhler
2007-10-28 21:03                                   ` Stefan Monnier
2007-10-30 15:10                                     ` Andreas Röhler
2007-10-31  7:47                                       ` Richard Stallman
2007-11-03 20:29                                         ` Stephen J. Turnbull
2007-11-04  0:11                                           ` Richard Stallman
2007-11-04  2:42                                             ` Stephen J. Turnbull
2007-11-04 21:06                                               ` Andreas Röhler
2007-11-05  8:47                                                 ` Richard Stallman
2007-10-31 16:09                                     ` Juri Linkov
2007-10-31 17:44                                       ` Stefan Monnier

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=E1IgagO-0001QC-Fh@fencepost.gnu.org \
    --to=rms@gnu.org \
    --cc=andreas.roehler@online.de \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rgm@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 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.