From: Juri Linkov <juri@jurta.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: andreas.roehler@online.de, emacs-devel@gnu.org
Subject: Re: Testing new abbrev tables in elisp
Date: Wed, 31 Oct 2007 18:09:32 +0200 [thread overview]
Message-ID: <87lk9kw23x.fsf@jurta.org> (raw)
In-Reply-To: <jwvir4r6jlp.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sun, 28 Oct 2007 17:03:19 -0400")
>> Beside of case-sensitivity another theme is in the
>> pipe: to allow multi-word abbrevs.
>
> Since I've installed my code this is now possible. Just set the :regexp
> property of the abbrev table accordingly.
It's easy to write such code now to do this indeed, thanks.
For example,
(defvar dict
'(("multi-word abbrev" "multi-word expansion")
;; ...
))
(dolist (d dict)
(define-abbrev global-abbrev-table (car d) (cadr d)))
(abbrev-table-put global-abbrev-table
:regexp (regexp-opt (mapcar 'car dict) 'words))
But maybe abbrev-mode should try to update :regexp automatically when the
user interactively defines a new multi-word abbrev? So instead of giving
the error message "Some abbrev characters are not word constituents" it
could run something like:
(let ((abbrevs ()))
(mapatoms (lambda (sym)
(if (symbol-value sym) (push (symbol-name sym) abbrevs)))
global-abbrev-table)
(abbrev-table-put global-abbrev-table :regexp (regexp-opt abbrevs 'words)))
to rebuild :regexp from all abbrevs when at least one of them is not
word constituent?
--
Juri Linkov
http://www.jurta.org/emacs/
next prev parent reply other threads:[~2007-10-31 16:09 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
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 [this message]
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=87lk9kw23x.fsf@jurta.org \
--to=juri@jurta.org \
--cc=andreas.roehler@online.de \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/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.