Mercurial > emacs
annotate doc/lispref/abbrevs.texi @ 97366:d2c211c8ceda
(w32_list_system_processes, w32_system_process_attributes): Add prototypes.
(Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname)
(Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcutime)
(Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs, Quser, Qgroup)
(Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime): Add extern declarations.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 09 Aug 2008 17:53:30 +0000 |
parents | 107ccd98fa12 |
children | cb5d2387102c |
rev | line source |
---|---|
84046 | 1 @c -*-texinfo-*- |
2 @c This is part of the GNU Emacs Lisp Reference Manual. | |
3 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2001, 2002, 2003, | |
87649 | 4 @c 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
84046 | 5 @c See the file elisp.texi for copying conditions. |
84116
0ba80d073e27
(setfilename): Go up one more level to ../../info.
Glenn Morris <rgm@gnu.org>
parents:
84046
diff
changeset
|
6 @setfilename ../../info/abbrevs |
84046 | 7 @node Abbrevs, Processes, Syntax Tables, Top |
8 @chapter Abbrevs and Abbrev Expansion | |
9 @cindex abbrev | |
10 @c @cindex abbrev table Redundant with "abbrev". | |
11 | |
12 An abbreviation or @dfn{abbrev} is a string of characters that may be | |
13 expanded to a longer string. The user can insert the abbrev string and | |
14 find it replaced automatically with the expansion of the abbrev. This | |
15 saves typing. | |
16 | |
17 The set of abbrevs currently in effect is recorded in an @dfn{abbrev | |
18 table}. Each buffer has a local abbrev table, but normally all buffers | |
19 in the same major mode share one abbrev table. There is also a global | |
20 abbrev table. Normally both are used. | |
21 | |
22 An abbrev table is represented as an obarray containing a symbol for | |
23 each abbreviation. The symbol's name is the abbreviation; its value | |
24 is the expansion; its function definition is the hook function to do | |
25 the expansion (@pxref{Defining Abbrevs}); its property list cell | |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
26 typically contains various additional properties such as the use |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
27 count, the number of times the abbreviation has been expanded, or |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
28 whether the abbrev is a so-called ``system'' abbrev defined by a major |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
29 mode rather than by the user (@pxref{Abbrev Properties}). |
84046 | 30 |
31 Because the symbols used for abbrevs are not interned in the usual | |
32 obarray, they will never appear as the result of reading a Lisp | |
33 expression; in fact, normally they are never used except by the code | |
34 that handles abbrevs. Therefore, it is safe to use them in an | |
35 extremely nonstandard way. @xref{Creating Symbols}. | |
36 | |
37 For the user-level commands for abbrevs, see @ref{Abbrevs,, Abbrev | |
38 Mode, emacs, The GNU Emacs Manual}. | |
39 | |
40 @menu | |
41 * Abbrev Mode:: Setting up Emacs for abbreviation. | |
42 * Tables: Abbrev Tables. Creating and working with abbrev tables. | |
43 * Defining Abbrevs:: Specifying abbreviations and their expansions. | |
44 * Files: Abbrev Files. Saving abbrevs in files. | |
45 * Expansion: Abbrev Expansion. Controlling expansion; expansion subroutines. | |
46 * Standard Abbrev Tables:: Abbrev tables used by various major modes. | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
47 * Abbrev Properties:: How to read and set abbrev properties. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
48 Which properties have which effect. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
49 * Abbrev Table Properties:: How to read and set abbrev table properties. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
50 Which properties have which effect. |
84046 | 51 @end menu |
52 | |
53 @node Abbrev Mode, Abbrev Tables, Abbrevs, Abbrevs | |
54 @comment node-name, next, previous, up | |
55 @section Setting Up Abbrev Mode | |
56 | |
57 Abbrev mode is a minor mode controlled by the value of the variable | |
58 @code{abbrev-mode}. | |
59 | |
60 @defvar abbrev-mode | |
61 A non-@code{nil} value of this variable turns on the automatic expansion | |
62 of abbrevs when their abbreviations are inserted into a buffer. | |
63 If the value is @code{nil}, abbrevs may be defined, but they are not | |
64 expanded automatically. | |
65 | |
66 This variable automatically becomes buffer-local when set in any fashion. | |
67 @end defvar | |
68 | |
69 @defvar default-abbrev-mode | |
70 This is the value of @code{abbrev-mode} for buffers that do not override it. | |
71 This is the same as @code{(default-value 'abbrev-mode)}. | |
72 @end defvar | |
73 | |
74 @node Abbrev Tables, Defining Abbrevs, Abbrev Mode, Abbrevs | |
75 @section Abbrev Tables | |
76 | |
77 This section describes how to create and manipulate abbrev tables. | |
78 | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
79 @defun make-abbrev-table &rest props |
84046 | 80 This function creates and returns a new, empty abbrev table---an obarray |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
81 containing no symbols. It is a vector filled with zeros. @var{props} |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
82 is a property list that is applied to the new table |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
83 (@pxref{Abbrev Table Properties}). |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
84 @end defun |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
85 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
86 @defun abbrev-table-p table |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
87 Return non-@code{nil} is @var{table} is an abbrev table. |
84046 | 88 @end defun |
89 | |
90 @defun clear-abbrev-table table | |
91 This function undefines all the abbrevs in abbrev table @var{table}, | |
92 leaving it empty. It always returns @code{nil}. | |
93 @end defun | |
94 | |
95 @defun copy-abbrev-table table | |
96 This function returns a copy of abbrev table @var{table}---a new | |
97 abbrev table that contains the same abbrev definitions. The only | |
98 difference between @var{table} and the returned copy is that this | |
99 function sets the property lists of all copied abbrevs to 0. | |
100 @end defun | |
101 | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
102 @defun define-abbrev-table tabname definitions &optional docstring &rest props |
84046 | 103 This function defines @var{tabname} (a symbol) as an abbrev table |
104 name, i.e., as a variable whose value is an abbrev table. It defines | |
105 abbrevs in the table according to @var{definitions}, a list of | |
106 elements of the form @code{(@var{abbrevname} @var{expansion} | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
107 [@var{hook}] [@var{props}...])}. These elements are passed as |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
108 arguments to @code{define-abbrev}. The return value is always |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
109 @code{nil}. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
110 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
111 The optional string @var{docstring} is the documentation string of the |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
112 variable @var{tabname}. The property list @var{props} is applied to |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
113 the abbrev table (@pxref{Abbrev Table Properties}). |
84046 | 114 |
115 If this function is called more than once for the same @var{tabname}, | |
116 subsequent calls add the definitions in @var{definitions} to | |
117 @var{tabname}, rather than overriding the entire original contents. | |
118 (A subsequent call only overrides abbrevs explicitly redefined or | |
119 undefined in @var{definitions}.) | |
120 @end defun | |
121 | |
122 @defvar abbrev-table-name-list | |
123 This is a list of symbols whose values are abbrev tables. | |
124 @code{define-abbrev-table} adds the new abbrev table name to this list. | |
125 @end defvar | |
126 | |
127 @defun insert-abbrev-table-description name &optional human | |
128 This function inserts before point a description of the abbrev table | |
129 named @var{name}. The argument @var{name} is a symbol whose value is an | |
130 abbrev table. The return value is always @code{nil}. | |
131 | |
132 If @var{human} is non-@code{nil}, the description is human-oriented. | |
133 System abbrevs are listed and identified as such. Otherwise the | |
134 description is a Lisp expression---a call to @code{define-abbrev-table} | |
135 that would define @var{name} as it is currently defined, but without | |
136 the system abbrevs. (The mode or package using @var{name} is supposed | |
137 to add these to @var{name} separately.) | |
138 @end defun | |
139 | |
140 @node Defining Abbrevs, Abbrev Files, Abbrev Tables, Abbrevs | |
141 @comment node-name, next, previous, up | |
142 @section Defining Abbrevs | |
143 @code{define-abbrev} is the low-level basic function for defining an | |
144 abbrev in a specified abbrev table. When major modes predefine standard | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
145 abbrevs, they should call @code{define-abbrev} and specify a @code{t} for |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
146 the @code{:system} property. |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
147 Be aware that any saved non-``system'' abbrevs are |
84046 | 148 restored at startup, i.e. before some major modes are loaded. Major modes |
149 should therefore not assume that when they are first loaded their abbrev | |
150 tables are empty. | |
151 | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
152 @defun define-abbrev table name expansion &optional hook &rest props |
84046 | 153 This function defines an abbrev named @var{name}, in @var{table}, to |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
154 expand to @var{expansion} and call @var{hook}, with properties |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
155 @var{props} (@pxref{Abbrev Properties}). The return value is @var{name}. |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
156 The @code{:system} property in @var{props} is treated specially here: |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
157 if it has the value @code{force}, then it will overwrite an existing |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
158 definition even for a non-``system'' abbrev of the same name. |
84046 | 159 |
160 The argument @var{name} should be a string. The argument | |
161 @var{expansion} is normally the desired expansion (a string), or | |
162 @code{nil} to undefine the abbrev. If it is anything but a string or | |
163 @code{nil}, then the abbreviation ``expands'' solely by running | |
164 @var{hook}. | |
165 | |
166 The argument @var{hook} is a function or @code{nil}. If @var{hook} is | |
167 non-@code{nil}, then it is called with no arguments after the abbrev is | |
168 replaced with @var{expansion}; point is located at the end of | |
169 @var{expansion} when @var{hook} is called. | |
170 | |
171 @cindex @code{no-self-insert} property | |
172 If @var{hook} is a non-@code{nil} symbol whose @code{no-self-insert} | |
173 property is non-@code{nil}, @var{hook} can explicitly control whether | |
174 to insert the self-inserting input character that triggered the | |
175 expansion. If @var{hook} returns non-@code{nil} in this case, that | |
176 inhibits insertion of the character. By contrast, if @var{hook} | |
177 returns @code{nil}, @code{expand-abbrev} also returns @code{nil}, as | |
178 if expansion had not really occurred. | |
179 | |
180 Normally the function @code{define-abbrev} sets the variable | |
181 @code{abbrevs-changed} to @code{t}, if it actually changes the abbrev. | |
182 (This is so that some commands will offer to save the abbrevs.) It | |
183 does not do this for a ``system'' abbrev, since those won't be saved | |
184 anyway. | |
185 @end defun | |
186 | |
187 @defopt only-global-abbrevs | |
188 If this variable is non-@code{nil}, it means that the user plans to use | |
189 global abbrevs only. This tells the commands that define mode-specific | |
190 abbrevs to define global ones instead. This variable does not alter the | |
191 behavior of the functions in this section; it is examined by their | |
192 callers. | |
193 @end defopt | |
194 | |
195 @node Abbrev Files, Abbrev Expansion, Defining Abbrevs, Abbrevs | |
196 @section Saving Abbrevs in Files | |
197 | |
198 A file of saved abbrev definitions is actually a file of Lisp code. | |
199 The abbrevs are saved in the form of a Lisp program to define the same | |
200 abbrev tables with the same contents. Therefore, you can load the file | |
201 with @code{load} (@pxref{How Programs Do Loading}). However, the | |
202 function @code{quietly-read-abbrev-file} is provided as a more | |
203 convenient interface. | |
204 | |
205 User-level facilities such as @code{save-some-buffers} can save | |
206 abbrevs in a file automatically, under the control of variables | |
207 described here. | |
208 | |
209 @defopt abbrev-file-name | |
210 This is the default file name for reading and saving abbrevs. | |
211 @end defopt | |
212 | |
213 @defun quietly-read-abbrev-file &optional filename | |
214 This function reads abbrev definitions from a file named @var{filename}, | |
215 previously written with @code{write-abbrev-file}. If @var{filename} is | |
216 omitted or @code{nil}, the file specified in @code{abbrev-file-name} is | |
217 used. @code{save-abbrevs} is set to @code{t} so that changes will be | |
218 saved. | |
219 | |
220 This function does not display any messages. It returns @code{nil}. | |
221 @end defun | |
222 | |
223 @defopt save-abbrevs | |
224 A non-@code{nil} value for @code{save-abbrevs} means that Emacs should | |
225 offer the user to save abbrevs when files are saved. If the value is | |
226 @code{silently}, Emacs saves the abbrevs without asking the user. | |
227 @code{abbrev-file-name} specifies the file to save the abbrevs in. | |
228 @end defopt | |
229 | |
230 @defvar abbrevs-changed | |
231 This variable is set non-@code{nil} by defining or altering any | |
232 abbrevs (except ``system'' abbrevs). This serves as a flag for | |
233 various Emacs commands to offer to save your abbrevs. | |
234 @end defvar | |
235 | |
236 @deffn Command write-abbrev-file &optional filename | |
237 Save all abbrev definitions (except ``system'' abbrevs), for all abbrev | |
238 tables listed in @code{abbrev-table-name-list}, in the file | |
239 @var{filename}, in the form of a Lisp program that when loaded will | |
240 define the same abbrevs. If @var{filename} is @code{nil} or omitted, | |
241 @code{abbrev-file-name} is used. This function returns @code{nil}. | |
242 @end deffn | |
243 | |
244 @node Abbrev Expansion, Standard Abbrev Tables, Abbrev Files, Abbrevs | |
245 @comment node-name, next, previous, up | |
246 @section Looking Up and Expanding Abbreviations | |
247 | |
248 Abbrevs are usually expanded by certain interactive commands, | |
249 including @code{self-insert-command}. This section describes the | |
250 subroutines used in writing such commands, as well as the variables they | |
251 use for communication. | |
252 | |
253 @defun abbrev-symbol abbrev &optional table | |
254 This function returns the symbol representing the abbrev named | |
255 @var{abbrev}. The value returned is @code{nil} if that abbrev is not | |
256 defined. The optional second argument @var{table} is the abbrev table | |
257 to look it up in. If @var{table} is @code{nil}, this function tries | |
258 first the current buffer's local abbrev table, and second the global | |
259 abbrev table. | |
260 @end defun | |
261 | |
262 @defun abbrev-expansion abbrev &optional table | |
263 This function returns the string that @var{abbrev} would expand into (as | |
264 defined by the abbrev tables used for the current buffer). If | |
265 @var{abbrev} is not a valid abbrev, the function returns @code{nil}. | |
266 The optional argument @var{table} specifies the abbrev table to use, | |
267 as in @code{abbrev-symbol}. | |
268 @end defun | |
269 | |
270 @deffn Command expand-abbrev | |
271 This command expands the abbrev before point, if any. If point does not | |
272 follow an abbrev, this command does nothing. The command returns the | |
273 abbrev symbol if it did expansion, @code{nil} otherwise. | |
274 | |
275 If the abbrev symbol has a hook function which is a symbol whose | |
276 @code{no-self-insert} property is non-@code{nil}, and if the hook | |
277 function returns @code{nil} as its value, then @code{expand-abbrev} | |
278 returns @code{nil} even though expansion did occur. | |
279 @end deffn | |
280 | |
281 @deffn Command abbrev-prefix-mark &optional arg | |
282 This command marks the current location of point as the beginning of | |
283 an abbrev. The next call to @code{expand-abbrev} will use the text | |
284 from here to point (where it is then) as the abbrev to expand, rather | |
285 than using the previous word as usual. | |
286 | |
287 First, this command expands any abbrev before point, unless @var{arg} | |
288 is non-@code{nil}. (Interactively, @var{arg} is the prefix argument.) | |
289 Then it inserts a hyphen before point, to indicate the start of the | |
290 next abbrev to be expanded. The actual expansion removes the hyphen. | |
291 @end deffn | |
292 | |
293 @defopt abbrev-all-caps | |
294 When this is set non-@code{nil}, an abbrev entered entirely in upper | |
295 case is expanded using all upper case. Otherwise, an abbrev entered | |
296 entirely in upper case is expanded by capitalizing each word of the | |
297 expansion. | |
298 @end defopt | |
299 | |
300 @defvar abbrev-start-location | |
301 The value of this variable is a buffer position (an integer or a marker) | |
302 for @code{expand-abbrev} to use as the start of the next abbrev to be | |
303 expanded. The value can also be @code{nil}, which means to use the | |
304 word before point instead. @code{abbrev-start-location} is set to | |
305 @code{nil} each time @code{expand-abbrev} is called. This variable is | |
306 also set by @code{abbrev-prefix-mark}. | |
307 @end defvar | |
308 | |
309 @defvar abbrev-start-location-buffer | |
310 The value of this variable is the buffer for which | |
311 @code{abbrev-start-location} has been set. Trying to expand an abbrev | |
312 in any other buffer clears @code{abbrev-start-location}. This variable | |
313 is set by @code{abbrev-prefix-mark}. | |
314 @end defvar | |
315 | |
316 @defvar last-abbrev | |
317 This is the @code{abbrev-symbol} of the most recent abbrev expanded. This | |
318 information is left by @code{expand-abbrev} for the sake of the | |
319 @code{unexpand-abbrev} command (@pxref{Expanding Abbrevs,, Expanding | |
320 Abbrevs, emacs, The GNU Emacs Manual}). | |
321 @end defvar | |
322 | |
323 @defvar last-abbrev-location | |
324 This is the location of the most recent abbrev expanded. This contains | |
325 information left by @code{expand-abbrev} for the sake of the | |
326 @code{unexpand-abbrev} command. | |
327 @end defvar | |
328 | |
329 @defvar last-abbrev-text | |
330 This is the exact expansion text of the most recent abbrev expanded, | |
331 after case conversion (if any). Its value is @code{nil} if the abbrev | |
332 has already been unexpanded. This contains information left by | |
333 @code{expand-abbrev} for the sake of the @code{unexpand-abbrev} command. | |
334 @end defvar | |
335 | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
336 @defvar abbrev-expand-functions |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
337 This is a special hook run @emph{around} the @code{expand-abbrev} |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
338 function. Functions on this hook are called with a single argument |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
339 which is a function that performs the normal abbrev expansion. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
340 The hook function can hence do anything it wants before and after |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
341 performing the expansion. It can also choose not to call its argument |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
342 and thus override the default behavior, or it may even call it |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
343 several times. The function should return the abbrev symbol if |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
344 expansion took place. |
84046 | 345 @end defvar |
346 | |
347 The following sample code shows a simple use of | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
348 @code{abbrev-expand-functions}. It assumes that @code{foo-mode} is a |
84046 | 349 mode for editing certain files in which lines that start with @samp{#} |
350 are comments. You want to use Text mode abbrevs for those lines. The | |
351 regular local abbrev table, @code{foo-mode-abbrev-table} is | |
352 appropriate for all other lines. Then you can put the following code | |
353 in your @file{.emacs} file. @xref{Standard Abbrev Tables}, for the | |
354 definitions of @code{local-abbrev-table} and @code{text-mode-abbrev-table}. | |
355 | |
356 @smallexample | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
357 (defun foo-mode-abbrev-expand-function (expand) |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
358 (if (not (save-excursion (forward-line 0) (eq (char-after) ?#))) |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
359 ;; Performs normal expansion. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
360 (funcall expand) |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
361 ;; We're inside a comment: use the text-mode abbrevs. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
362 (let ((local-abbrev-table text-mode-abbrev-table)) |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
363 (funcall expand)))) |
84046 | 364 |
365 (add-hook 'foo-mode-hook | |
366 #'(lambda () | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
367 (add-hook 'abbrev-expand-functions |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
368 'foo-mode-abbrev-expand-function |
84046 | 369 nil t))) |
370 @end smallexample | |
371 | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
372 @node Standard Abbrev Tables, Abbrev Properties, Abbrev Expansion, Abbrevs |
84046 | 373 @comment node-name, next, previous, up |
374 @section Standard Abbrev Tables | |
375 | |
376 Here we list the variables that hold the abbrev tables for the | |
377 preloaded major modes of Emacs. | |
378 | |
379 @defvar global-abbrev-table | |
380 This is the abbrev table for mode-independent abbrevs. The abbrevs | |
381 defined in it apply to all buffers. Each buffer may also have a local | |
382 abbrev table, whose abbrev definitions take precedence over those in the | |
383 global table. | |
384 @end defvar | |
385 | |
386 @defvar local-abbrev-table | |
387 The value of this buffer-local variable is the (mode-specific) | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
388 abbreviation table of the current buffer. It can also be a list of |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
389 such tables. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
390 @end defvar |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
391 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
392 @defvar abbrev-minor-mode-table-alist |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
393 The value of this variable is a list of elements of the form |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
394 @code{(@var{mode} . @var{abbrev-table})} where @var{mode} is the name |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
395 of a variable: if the variable is bound to a non-@code{nil} value, |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
396 then the @var{abbrev-table} is active, otherwise it is ignored. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
397 @var{abbrev-table} can also be a list of abbrev tables. |
84046 | 398 @end defvar |
399 | |
400 @defvar fundamental-mode-abbrev-table | |
401 This is the local abbrev table used in Fundamental mode; in other words, | |
402 it is the local abbrev table in all buffers in Fundamental mode. | |
403 @end defvar | |
404 | |
405 @defvar text-mode-abbrev-table | |
406 This is the local abbrev table used in Text mode. | |
407 @end defvar | |
408 | |
409 @defvar lisp-mode-abbrev-table | |
410 This is the local abbrev table used in Lisp mode and Emacs Lisp mode. | |
411 @end defvar | |
412 | |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
413 @node Abbrev Properties, Abbrev Table Properties, Standard Abbrev Tables, Abbrevs |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
414 @section Abbrev Properties |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
415 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
416 Abbrevs have properties, some of which influence the way they work. |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
417 You can provide them as arguments to @code{define-abbrev} and you can |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
418 manipulate them with the functions: |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
419 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
420 @defun abbrev-put abbrev prop val |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
421 Set the property @var{prop} of abbrev @var{abbrev} to value @var{val}. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
422 @end defun |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
423 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
424 @defun abbrev-get abbrev prop |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
425 Return the property @var{prop} of abbrev @var{abbrev}, or @code{nil} |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
426 if the abbrev has no such property. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
427 @end defun |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
428 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
429 The following properties have special meaning: |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
430 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
431 @table @code |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
432 @item :count |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
433 This property counts the number of times the abbrev has |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
434 been expanded. If not explicitly set, it is initialized to 0 by |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
435 @code{define-abbrev}. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
436 |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
437 @item :system |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
438 If non-@code{nil}, this property marks the abbrev as a ``system'' |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
439 abbrev. Such abbrevs will not be saved to @var{abbrev-file-name}. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
440 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
441 @item :enable-function |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
442 If non-@code{nil}, this property should be a function of no |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
443 arguments which returns @code{nil} if the abbrev should not be used |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
444 and @code{t} otherwise. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
445 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
446 @item :case-fixed |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
447 If non-@code{nil}, this property indicates that the case of the |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
448 abbrev's name is significant and should only match a text with the |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
449 same pattern of capitalization. It also disables the code that |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
450 modifies the capitalization of the expansion. |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
451 @end table |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
452 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
453 @node Abbrev Table Properties, , Abbrev Properties, Abbrevs |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
454 @section Abbrev Table Properties |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
455 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
456 Like abbrevs, abble tables have properties, some of which influence |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
457 the way they work. You can provide them as arguments to |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
458 @code{define-abbrev-table} and you can manipulate them with the |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
459 functions: |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
460 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
461 @defun abbrev-table-put table prop val |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
462 Set the property @var{prop} of abbrev table @var{table} to value @var{val}. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
463 @end defun |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
464 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
465 @defun abbrev-table-get table prop |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
466 Return the property @var{prop} of abbrev table @var{table}, or @code{nil} |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
467 if the abbrev has no such property. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
468 @end defun |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
469 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
470 The following properties have special meaning: |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
471 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
472 @table @code |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
473 @item :enable-function |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
474 This is like the @code{:enable-function} abbrev property except that |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
475 it applies to all abbrevs in the table and is used even before trying |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
476 to find the abbrev before point so it can dynamically modify the |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
477 abbrev table. |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
478 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
479 @item :case-fixed |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
480 This is like the @code{:case-fixed} abbrev property except that it |
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
481 applies to all abbrevs in the table. |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
482 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
483 @item :regexp |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
484 If non-@code{nil}, this property is a regular expression that |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
485 indicates how to extract the name of the abbrev before point before |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
486 looking it up in the table. When the regular expression matches |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
487 before point, the abbrev name is expected to be in submatch 1. |
85773
13ae285f009a
Rename `count' and `system-flag' to :count and :system. Update all users.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85710
diff
changeset
|
488 If this property is @code{nil}, @code{expand-function} defaults to |
85710
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
489 @code{"\\<\\(\\w+\\)\\W"}. This property allows the use of abbrevs |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
490 whose name contains characters of non-word syntax. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
491 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
492 @item :parents |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
493 This property holds the list of tables from which to inherit |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
494 other abbrevs. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
495 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
496 @item :abbrev-table-modiff |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
497 This property holds a counter incremented each time a new abbrev is |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
498 added to the table. |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
499 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
500 @end table |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
501 |
beb909dfc54d
Rewrite abbrev.c in Elisp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84116
diff
changeset
|
502 |
84046 | 503 @ignore |
504 arch-tag: 5ffdbe08-2cd4-48ec-a5a8-080f95756eec | |
505 @end ignore |