annotate lisp/expand.el @ 107777:13c077500eb3

2010-04-04 John Wiegley <jwiegley@gmail.com> * ido.el (ido-use-virtual-buffers): New variable to indicate whether "virtual buffer" support is enabled for IDO. Essentially it works as follows: Say you are visiting a file and the buffer gets cleaned up by mignight.el. Later, you want to switch to that buffer, but find it's no longer open. With virtual buffers enabled, the buffer name stays in the buffer list (using the ido-virtual face, and always at the end), and if you select it, it opens the file back up again. This allows you to think less about whether recently opened files are still open or not. Most of the time you can quit Emacs, restart, and then switch to a file buffer that was previously open as if it still were. NOTE: This feature has been present in iswitchb for several years now, and I'm porting the same logic to IDO. (ido-virtual): Face used to indicate virtual buffers in the list. (ido-buffer-internal): If a buffer is chosen, and no such buffer exists, but a virtual buffer of that name does (which would be why it was in the list), recreate the buffer by reopening the file. (ido-make-buffer-list): If virtual buffers are being used, call `ido-add-virtual-buffers-to-list' before the make list hook. (ido-virtual-buffers): New variable which contains a copy of the current contents of the `recentf-list', albeit pared down for the sake of speed, and with proper faces applied. (ido-add-virtual-buffers-to-list): Using the `recentf-list', create a list of "virtual buffers" to present to the user in addition to the currently open set. Note that this logic could get rather slow if that list is too large. With the default `recentf-max-saved-items' of 200, there is little speed penalty.
author jwiegley@gmail.com
date Sun, 04 Apr 2010 02:55:19 -0400
parents 1d1d5d9bd884
children d835100c3e8b 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 27042
diff changeset
1 ;;; expand.el --- make abbreviations more usable
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
74439
ddcbd2c1b70d Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 73644
diff changeset
3 ;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
4 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 ;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org>
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; Maintainer: Frederic Lepied <Frederic.Lepied@sugix.frmug.org>
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; Keywords: abbrev
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
12 ;; GNU Emacs is free software: you can redistribute it and/or modify
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; (at your option) any later version.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
27 ;; This package defines abbrevs which expand into structured constructs
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
28 ;; for certain languages. The construct is indented for you,
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
29 ;; and contains slots for you to fill in other text.
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
30
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
31 ;; These abbrevs expand only at the end of a line and when not in a comment
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
32 ;; or a string.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;; Look at the Sample: section for emacs-lisp, perl and c expand lists.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; For example for c-mode, you could declare your abbrev table with :
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;; (defconst c-expand-list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; '(("if" "if () {\n \n} else {\n \n}" (5 10 21))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; ("ifn" "if () {}" (5 8))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;; ("uns" "unsigned ")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;; ("for" "for(; ; ) {\n\n}" (5 7 9 13))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;; ("switch" "switch () {\n\n}" (9 13))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;; ("case" "case :\n\nbreak;\n" (6 8 16))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;; ("do" "do {\n\n} while ();" (6 16))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 ;; ("while" "while () {\n\n}" (8 12))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 ;; ("default" "default:\n\nbreak;" 10)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;; ("main" "int\nmain(int argc, char * argv[])\n{\n\n}\n" 37))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 ;; "Expansions for C mode")
41612
83f879e86675 Converted backquote to the new style (in a string).
Sam Steingold <sds@gnu.org>
parents: 39831
diff changeset
49 ;;
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
50 ;; and enter Abbrev mode with the following hook :
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 ;;
76712
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
52 ;; (add-hook 'c-mode-hook
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
53 ;; (lambda ()
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
54 ;; (expand-add-abbrevs c-mode-abbrev-table c-expand-list)
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
55 ;; (abbrev-mode 1)))
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 ;;
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
57 ;; you can also init some post-process hooks :
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 ;;
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
59 ;; (add-hook 'expand-load-hook
76712
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
60 ;; (lambda ()
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
61 ;; (add-hook 'expand-expand-hook 'indent-according-to-mode)
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
62 ;; (add-hook 'expand-jump-hook 'indent-according-to-mode)))
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 ;; Remarks:
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 ;; Many thanks to Heddy Boubaker <boubaker@cenatls.cena.dgac.fr>,
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 ;; Jerome Santini <santini@chambord.univ-orleans.fr>,
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 ;; Jari Aalto <jaalto@tre.tele.nokia.fi>.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 ;;
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
70 ;; Please send me a word to give me your feeling about this feature or
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ;; to explain me how you use it (your expansions table for example) using
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
72 ;; the function expand-submit-report.
24218
f3a482ad0fd6 Terminate Commentary for Finder.
Dave Love <fx@gnu.org>
parents: 20597
diff changeset
73 ;;; Code:
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 ;;; Constants:
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
77 (defgroup expand nil
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
78 "Make abbreviations more usable."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
79 :group 'abbrev)
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
80
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
81 (defcustom expand-load-hook nil
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
82 "Hooks run when `expand.el' is loaded."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
83 :type 'hook
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
84 :group 'expand)
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
86 (defcustom expand-expand-hook nil
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
87 "Hooks run when an abbrev made by `expand-add-abbrevs' is expanded."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
88 :type 'hook
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
89 :group 'expand)
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
91 (defcustom expand-jump-hook nil
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
92 "Hooks run by `expand-jump-to-previous-slot' and `expand-jump-to-next-slot'."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
93 :type 'hook
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 17517
diff changeset
94 :group 'expand)
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 ;;; Samples:
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 (define-skeleton expand-c-for-skeleton "For loop skeleton"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 "Loop var: "
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 "for(" str _ @ "=0; " str @ "; " str @ ") {" \n
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 @ _ \n
39831
ef785a6f6245 (expand-c-for-skeleton): Add explicit terminating \n.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
102 "}" > \n)
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 (defconst expand-c-sample-expand-list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 '(("if" "if () {\n \n} else {\n \n}" (5 10 21))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 ("ifn" "if () {}" (5 8))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 ("uns" "unsigned ")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 ("for" expand-c-for-skeleton)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 ("switch" "switch () {\n\n}" (9 13))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 ("case" "case :\n\nbreak;\n" (6 8 16))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 ("do" "do {\n\n} while ();" (6 16))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112 ("while" "while () {\n\n}" (8 12))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 ("default" "default:\n\nbreak;" 10)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 ("main" "int\nmain(int argc, char * argv[])\n{\n\n}\n" 37))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 "Expansions for C mode. See `expand-add-abbrevs'.")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 ;; lisp example from Jari Aalto <jaalto@tre.tele.nokia.fi>
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (defconst expand-sample-lisp-mode-expand-list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 "defu"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 "(defun ()\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 " \"\"\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 " (interactive)\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 " (let* (\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 " )\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128 " \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129 " ))")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 (list 8 11 16 32 43 59))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 "defs"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 "(defsubst ()\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 " \"\"\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 " (interactive)\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 " )")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 (list 11 14 19 23 39))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 "defm"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144 "(defmacro ()\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145 " \"\"\n"
41612
83f879e86675 Converted backquote to the new style (in a string).
Sam Steingold <sds@gnu.org>
parents: 39831
diff changeset
146 " `( \n"
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 " ))")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148 (list 11 13 18 25))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 "defa"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
153 "(defadvice (around act)\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 " \"\"\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 " \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156 " )")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157 (list 12 22 32 36))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 "defc"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 "(defconst nil\n \"\")\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 (list 11 13 20))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 "defv"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 "(defvar nil\n \"\")\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 (list 9 11 18))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170 "let"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171 "(let* (\n)\n "
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172 (list 8 13))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175 "sav"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
176 "(save-excursion\n \n)"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
177 (list 18))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
179 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 "aut"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181 "(autoload ' \"\" t t)\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
182 (list 12 14))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
185 "Expansions for Lisp mode. See `expand-add-abbrevs'.")
41612
83f879e86675 Converted backquote to the new style (in a string).
Sam Steingold <sds@gnu.org>
parents: 39831
diff changeset
186
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187 ;; perl example from Jari Aalto <jaalto@tre.tele.nokia.fi>
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
188 (defconst expand-sample-perl-mode-expand-list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
190 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191 ;; This is default perl4 subroutine template
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193 "sub"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
195 "#" (make-string 70 ?-) "\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196 "sub {\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 " # DESCRIPTION\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 " # \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
199 " # \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
200 " # INPUT\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
201 " # \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
202 " # \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
203 " # RETURN\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
204 " # \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
205 "\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
206 " local( $f ) = \"$lib.\";\n" ;; Function name AFTER period
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
207 " local() = @_;\n" ;; func arguments here
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
208 " \n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
209 " \n}\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
210 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
211 (list 77 88 120 146 159 176))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
212
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
213 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
214 "for" ; foreach
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
215 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
216 "for ( )\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
217 "{\n\n\}"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
218 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
219 (list 7 12))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
220
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
221 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
222 "whi" ; foreach
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
223 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
224 "while ( )\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
225 "{\n\n\}"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
226 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227 (list 9 15))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
228
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
230 ;; The normal "if" can be used like
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
231 ;; print $F "xxxxxx" if defined @arr;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
232 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
233 (list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
234 "iff"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
235 (concat
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
236 "if ( )\n"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
237 "{\n\n\}"
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
238 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
239 (list 6 12))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
240
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
241 (list "loc" "local( $ );" (list 9))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
242 (list "my" "my( $ );" (list 6))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
243 (list "ope" "open(,\"\")\t|| die \"$f: Can't open [$]\";" (list 6 8 36))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
244 (list "clo" "close ;" 7)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
245 (list "def" "defined " (list 9))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
246 (list "und" "undef ;" (list 7))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
247
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
248 ;; There is no ending colon, because they can be in statement
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
249 ;; defined $REXP_NOT_NEW && (print "xxxxx" );
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
250 ;;
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
251 (list "pr" "print " 7)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
252 (list "pf" "printf " 8)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
254
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
255 (list "gre" "grep( //, );" (list 8 11))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
256 (list "pus" "push( , );" (list 7 9))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
257 (list "joi" "join( '', );" (list 7 11))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258 (list "rtu" "return ;" (list 8))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 "Expansions for Perl mode. See `expand-add-abbrevs'.")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 ;;; Code:
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
264
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 ;;;###autoload
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266 (defun expand-add-abbrevs (table abbrevs)
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
267 "Add a list of abbrev to abbrev table TABLE.
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
268 ABBREVS is a list of abbrev definitions; each abbrev description entry
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
269 has the form (ABBREV EXPANSION ARG).
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
270
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
271 ABBREV is the abbreviation to replace.
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
272
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
273 EXPANSION is the replacement string or a function which will make the
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
274 expansion. For example you, could use the DMacros or skeleton packages
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
275 to generate such functions.
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
276
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
277 ARG is an optional argument which can be a number or a list of
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
278 numbers. If ARG is a number, point is placed ARG chars from the
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
279 beginning of the expanded text.
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
280
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
281 If ARG is a list of numbers, point is placed according to the first
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
282 member of the list, but you can visit the other specified positions
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
283 cyclicaly with the functions `expand-jump-to-previous-slot' and
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
284 `expand-jump-to-next-slot'.
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
285
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
286 If ARG is omitted, point is placed at the end of the expanded text."
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
287
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288 (if (null abbrevs)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
289 table
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
290 (expand-add-abbrev table (nth 0 (car abbrevs)) (nth 1 (car abbrevs))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
291 (nth 2 (car abbrevs)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
292 (expand-add-abbrevs table (cdr abbrevs))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
294 (defvar expand-list nil "Temporary variable used by the Expand package.")
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 (defvar expand-pos nil
73644
07bba73f6bdd (expand-pos): Use "non-nil" in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
297 "If non-nil, stores a vector containing markers to positions defined by the last expansion.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 This variable is local to a buffer.")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 (make-variable-buffer-local 'expand-pos)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 (defvar expand-index 0
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
302 "Index of the last marker used in `expand-pos'.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 This variable is local to a buffer.")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 (make-variable-buffer-local 'expand-index)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
306 (defvar expand-point nil
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307 "End of the expanded region.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308 This variable is local to a buffer.")
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
309 (make-variable-buffer-local 'expand-point)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 (defun expand-add-abbrev (table abbrev expansion arg)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 "Add one abbreviation and provide the hook to move to the specified positions."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313 (let* ((string-exp (if (and (symbolp expansion) (fboundp expansion))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 nil
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315 expansion))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 (position (if (and arg string-exp)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
317 (if (listp arg)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318 (- (length expansion) (1- (car arg)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 (- (length expansion) (1- arg)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 0)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
321 (define-abbrev
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
322 table
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
323 abbrev
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 (vector string-exp
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 position
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 (if (and (listp arg)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
327 (not (null arg)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328 (cons (length string-exp) arg)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 nil)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
330 (if (and (symbolp expansion) (fboundp expansion))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331 expansion
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 nil)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 'expand-abbrev-hook)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
336 (put 'expand-abbrev-hook 'no-self-insert t)
76712
b73b11ebc50c Change example to always enable abbrev-mode, and remove redundant `function'.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
337 ;;;###autoload
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
338 (defun expand-abbrev-hook ()
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
339 "Abbrev hook used to do the expansion job of expand abbrevs.
27042
fe88ae65ed75 (expand-abbrev-hook): Return t if expansion was
Gerd Moellmann <gerd@gnu.org>
parents: 24218
diff changeset
340 See `expand-add-abbrevs'. Value is non-nil if expansion was done."
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341 ;; Expand only at the end of a line if we are near a word that has
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 ;; an abbrev built from expand-add-abbrev.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
343 (if (and (eolp)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 (not (expand-in-literal)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 (let ((p (point)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 (setq expand-point nil)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347 ;; don't expand if the preceding char isn't a word constituent
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 (if (and (eq (char-syntax (preceding-char))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
349 ?w)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 (expand-do-expansion))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351 (progn
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
352 ;; expand-point tells us if we have inserted the text
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353 ;; ourself or if it is the hook which has done the job.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354 (if expand-point
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
355 (progn
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 (if (vectorp expand-list)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357 (expand-build-marks expand-point))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
358 (indent-region p expand-point nil))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359 ;; an outside function can set expand-list to a list of
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 ;; markers in reverse order.
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361 (if (listp expand-list)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
362 (setq expand-index 0
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363 expand-pos (expand-list-to-markers expand-list)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364 expand-list nil)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 (run-hooks 'expand-expand-hook)
27042
fe88ae65ed75 (expand-abbrev-hook): Return t if expansion was
Gerd Moellmann <gerd@gnu.org>
parents: 24218
diff changeset
366 t)
fe88ae65ed75 (expand-abbrev-hook): Return t if expansion was
Gerd Moellmann <gerd@gnu.org>
parents: 24218
diff changeset
367 nil))
fe88ae65ed75 (expand-abbrev-hook): Return t if expansion was
Gerd Moellmann <gerd@gnu.org>
parents: 24218
diff changeset
368 nil))
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
370 (defun expand-do-expansion ()
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
371 (delete-backward-char (length last-abbrev-text))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372 (let* ((vect (symbol-value last-abbrev))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
373 (text (aref vect 0))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
374 (position (aref vect 1))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375 (jump-args (aref vect 2))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
376 (hook (aref vect 3)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
377 (cond (text
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
378 (insert text)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379 (setq expand-point (point))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 (if jump-args
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
381 (funcall 'expand-build-list (car jump-args) (cdr jump-args)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
382 (if position
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 (backward-char position))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 (if hook
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385 (funcall hook))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 t)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
389 (defun expand-abbrev-from-expand (word)
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 "Test if an abbrev has a hook."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391 (or
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392 (and (intern-soft word local-abbrev-table)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 (symbol-function (intern-soft word local-abbrev-table)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 (and (intern-soft word global-abbrev-table)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395 (symbol-function (intern-soft word global-abbrev-table)))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 (defun expand-previous-word ()
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 "Return the previous word."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 (save-excursion
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 (let ((p (point)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 (backward-word 1)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 (buffer-substring p (point)))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
404 ;;;###autoload
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
405 (defun expand-jump-to-previous-slot ()
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
406 "Move the cursor to the previous slot in the last abbrev expansion.
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
407 This is used only in conjunction with `expand-add-abbrevs'."
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 (interactive)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 (if expand-pos
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 (progn
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 (setq expand-index (1- expand-index))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412 (if (< expand-index 0)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 (setq expand-index (1- (length expand-pos))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 (goto-char (aref expand-pos expand-index))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 (run-hooks 'expand-jump-hook))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
417 ;;;###autoload
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
418 (defun expand-jump-to-next-slot ()
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
419 "Move the cursor to the next slot in the last abbrev expansion.
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
420 This is used only in conjunction with `expand-add-abbrevs'."
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 (interactive)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422 (if expand-pos
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423 (progn
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424 (setq expand-index (1+ expand-index))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
425 (if (>= expand-index (length expand-pos))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
426 (setq expand-index 0))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 (goto-char (aref expand-pos expand-index))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 (run-hooks 'expand-jump-hook))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429
96439
5fd9456fa70d Rebind two global `C-x a' keys "n", "p"
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
430 ;;;###autoload (define-key abbrev-map "p" 'expand-jump-to-previous-slot)
5fd9456fa70d Rebind two global `C-x a' keys "n", "p"
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
431 ;;;###autoload (define-key abbrev-map "n" 'expand-jump-to-next-slot)
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
432
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433 (defun expand-build-list (len l)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
434 "Build a vector of offset positions from the list of positions."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435 (expand-clear-markers)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 (setq expand-list (vconcat l))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 (let ((i 0)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
438 (lenlist (length expand-list)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
439 (while (< i lenlist)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440 (aset expand-list i (- len (1- (aref expand-list i))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
441 (setq i (1+ i))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 )
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
443
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
444 (defun expand-build-marks (p)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 "Transform the offsets vector into a marker vector."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 (if expand-list
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 (progn
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448 (setq expand-index 0)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449 (setq expand-pos (make-vector (length expand-list) nil))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 (let ((i (1- (length expand-list))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 (while (>= i 0)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452 (aset expand-pos i (copy-marker (- p (aref expand-list i))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
453 (setq i (1- i))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
454 (setq expand-list nil))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
455
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 (defun expand-clear-markers ()
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 "Make the markers point nowhere."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458 (if expand-pos
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 (progn
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 (let ((i (1- (length expand-pos))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461 (while (>= i 0)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 (set-marker (aref expand-pos i) nil)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 (setq i (1- i))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
464 (setq expand-pos nil))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
465
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (defun expand-in-literal ()
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 "Test if we are in a comment or in a string."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 (save-excursion
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 (let* ((lim (or (save-excursion
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470 (beginning-of-defun)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 (point))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 (point-min)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 (here (point))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
474 (state (parse-partial-sexp lim (point))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 (cond
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
476 ((nth 3 state) 'string)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
477 ((nth 4 state) 'comment)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
478 (t nil)))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
479
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
480 ;; support functions to add marks to jump from outside function
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
481
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482 (defun expand-list-to-markers (l)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 "Transform a list of markers in reverse order into a vector in the correct order."
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
484 (let* ((len (1- (length l)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
485 (loop len)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
486 (v (make-vector (+ len 1) nil)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487 (while (>= loop 0)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
488 (aset v loop (if (markerp (car l)) (car l) (copy-marker (car l))))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
489 (setq l (cdr l)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
490 loop (1- loop)))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
491 v))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
492
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 ;; integration with skeleton.el
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
494 ;; Used in `skeleton-end-hook' to fetch the positions for @ skeleton tags.
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
495 ;; See `skeleton-insert'.
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
496 (defun expand-skeleton-end-hook ()
16770
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
497 (if skeleton-positions
26698958bd84 (expand-map): Don't define SPC.
Richard M. Stallman <rms@gnu.org>
parents: 16769
diff changeset
498 (setq expand-list skeleton-positions)))
41612
83f879e86675 Converted backquote to the new style (in a string).
Sam Steingold <sds@gnu.org>
parents: 39831
diff changeset
499
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
500 (add-hook 'skeleton-end-hook (function expand-skeleton-end-hook))
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
502 (provide 'expand)
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
504 ;; run load hooks
16838
9bcab3c812bb No longer a minor mode.
Richard M. Stallman <rms@gnu.org>
parents: 16770
diff changeset
505 (run-hooks 'expand-load-hook)
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
506
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
507 ;; arch-tag: fee53e9e-30e3-4ef3-b191-9785e1f8e885
16769
077577e8946b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
508 ;;; expand.el ends here