Mercurial > emacs
annotate lisp/dabbrev.el @ 24419:30e478cd167e
(shell-command-default-error-buffer): Renamed from
shell-command-on-region-default-error-buffer.
(shell-command-on-region): Mention in echo area when there
is some error output. Mention success or failure, too.
Accumulate multiple error outputs
going forward, with formfeed in between. Display the error buffer
when we have put something in it.
(shell-command): Add the ERROR-BUFFER argument feature.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 01 Mar 1999 03:19:32 +0000 |
parents | 4beab023a902 |
children | 1ef9d70dfb0f |
rev | line source |
---|---|
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
1 ;;; dabbrev.el --- dynamic abbreviation package |
14169 | 2 |
19310 | 3 ;; Copyright (C) 1985, 86, 92, 94, 96, 1997 Free Software Foundation, Inc. |
846
20674ae6bf52
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
4 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
5 ;; Author: Don Morrison |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
6 ;; Maintainer: Lars Lindberg <Lars.Lindberg@sypro.cap.se> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
7 ;; Created: 16 Mars 1992 |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
8 ;; Lindberg's last update version: 5.7 |
22250
a77d473867b8
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21669
diff
changeset
|
9 ;; Keywords: abbrev expand completion convenience |
267 | 10 |
14169 | 11 ;; This file is part of GNU Emacs. |
12 | |
13 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
267 | 14 ;; it under the terms of the GNU General Public License as published by |
14169 | 15 ;; the Free Software Foundation; either version 2, or (at your option) |
16 ;; any later version. | |
17 | |
18 ;; GNU Emacs is distributed in the hope that it will be useful, | |
267 | 19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 ;; GNU General Public License for more details. | |
14169 | 22 |
267 | 23 ;; You should have received a copy of the GNU General Public License |
14169 | 24 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
25 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
26 ;; Boston, MA 02111-1307, USA. | |
267 | 27 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
793
diff
changeset
|
28 ;;; Commentary: |
267 | 29 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
30 ;; The purpose with this package is to let you write just a few |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
31 ;; characters of words you've written earlier to be able to expand |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
32 ;; them. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
33 ;; |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
34 ;; To expand a word, just put the point right after the word and press |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
35 ;; M-/ (dabbrev-expand) or M-C-/ (dabbrev-completion). |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
36 ;; |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
37 ;; Check out the customizable variables below to learn about all the |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
38 ;; features of this package. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
39 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
40 ;;; Hints and tips for major modes writers: |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
41 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
42 ;; Recommended values C/Lisp etc text |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
43 ;; dabbrev-case-fold-search nil t |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
44 ;; dabbrev-case-replace nil t |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
45 ;; |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
46 ;; Set the variables you want special for your mode like this: |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
47 ;; (set (make-local-variable 'dabbrev-case-replace) nil) |
14040 | 48 ;; Then you don't interfere with other modes. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
49 ;; |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
50 ;; If your mode handles buffers that refers to other buffers |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
51 ;; (i.e. compilation-mode, gud-mode), then try to set |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
52 ;; `dabbrev-select-buffers-function' or `dabbrev-friend-buffer-function' |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
53 ;; to a function that point out those buffers. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
54 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
55 ;; Same goes for major-modes that are connected to other modes. There |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
56 ;; are for instance a number of mail-modes. One for reading, one for |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
57 ;; creating a new mail etc. Maybe those should be connected. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
58 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
59 ;; Example for GNUS (when we write a reply, we want dabbrev to look in |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
60 ;; the article for expansion): |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
61 ;; (set (make-local-variable 'dabbrev-friend-buffer-function) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
62 ;; (lambda (buffer) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
63 ;; (save-excursion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
64 ;; (set-buffer buffer) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
65 ;; (memq major-mode '(news-reply-mode gnus-article-mode))))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
66 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
67 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
68 ;; Known bugs and limitations. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
69 ;; - Possible to do several levels of `dabbrev-completion' in the |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
70 ;; minibuffer. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
71 ;; - dabbrev-completion doesn't handle resetting the globals variables |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
72 ;; right. It resets them after finding the abbrev. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
73 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
74 ;; Future enhancements |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
75 ;; - Check the tags-files? Like tags-complete? |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
76 ;; - Add the possibility of searching both forward and backward to |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
77 ;; the nearest expansion. |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
78 ;; - Check the kill-ring when everything else fails. (Maybe something |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
79 ;; for hippie-expand?). [Bng] <boris@cs.rochester.edu> |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
80 |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
81 ;;; These people gave suggestions: |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
82 ;; [hymie] Hyman Rosen <marks!hymie@jyacc.jyacc.com> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
83 ;; [burgett] Steve Burgett <burgett@bizet.eecs.berkeley.edu> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
84 ;; [jules] Julian Gosnell <jules@x.co.uk> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
85 ;; [kifer] Michael Kifer <kifer@sbcs.sunysb.edu> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
86 ;; [ake] Ake Stenhoff <extaksf@aom.ericsson.se> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
87 ;; [alon] Alon Albert <al%imercury@uunet.uu.net> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
88 ;; [tromey] Tom Tromey <tromey@busco.lanl.gov> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
89 ;; [Rolf] Rolf Schreiber <rolf@mathematik.uni-stuttgart.de> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
90 ;; [Petri] Petri Raitio <per@tekla.fi> |
20604
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
91 ;; [ejb] Jay Berkenbilt <ejb@ql.org> |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
92 ;; [hawley] Bob Hawley <rth1@quartet.mt.att.com> |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
93 ;; ... and to all the people who have participated in the beta tests. |
267 | 94 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
793
diff
changeset
|
95 ;;; Code: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
793
diff
changeset
|
96 |
14169 | 97 ;;---------------------------------------------------------------- |
98 ;; Customization variables | |
99 ;;---------------------------------------------------------------- | |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
100 |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
101 (defgroup dabbrev nil |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
102 "Dynamic Abbreviations" |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
103 :tag "Dynamic Abbreviations" |
22250
a77d473867b8
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21669
diff
changeset
|
104 :group 'abbrev |
a77d473867b8
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21669
diff
changeset
|
105 :group 'convenience) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
106 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
107 (defcustom dabbrev-backward-only nil |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
108 "*If non-nil, `dabbrev-expand' only looks backwards." |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
109 :type 'boolean |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
110 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
111 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
112 (defcustom dabbrev-limit nil |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
113 "*Limits region searched by `dabbrev-expand' to this many chars away." |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
114 :type '(choice (const :tag "off" nil) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
115 integer) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
116 :group 'dabbrev) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
117 |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
118 (defcustom dabbrev-abbrev-skip-leading-regexp nil |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
119 "*Regexp for skipping leading characters of an abbreviation. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
120 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
121 Example: Set this to \"\\\\$\" for programming languages |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
122 in which variable names may appear with or without a leading `$'. |
19308
f7a109d11c10
(dabbrev-abbrev-skip-leading-regexp): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
17864
diff
changeset
|
123 \(For example, in Makefiles.\) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
124 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
125 Set this to nil if no characters should be skipped." |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
126 :type '(choice regexp |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
127 (const :tag "off" nil)) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
128 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
129 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
130 (defcustom dabbrev-case-fold-search 'case-fold-search |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
131 "*Control whether dabbrev searches should ignore case. |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
132 A value of nil means case is significant. |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
133 A value of `case-fold-search' means case is significant |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
134 if `case-fold-search' is nil. |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
135 Any other non-nil version means case is not significant." |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
136 :type '(choice (const :tag "off" nil) |
22572
b1cba467a906
(dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
137 (const :tag "like search" case-fold-search) |
b1cba467a906
(dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
138 (other :tag "on" t)) |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
139 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
140 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
141 (defcustom dabbrev-upcase-means-case-search nil |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
142 "*The significance of an uppercase character in an abbreviation. |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
143 nil means case fold search, non-nil means case sensitive search. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
144 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
145 This variable has an effect only when the value of |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
146 `dabbrev-case-fold-search' says to ignore case." |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
147 :type 'boolean |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
148 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
149 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
150 (defcustom dabbrev-case-replace 'case-replace |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
151 "*Controls whether dabbrev preserves case when expanding the abbreviation. |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
152 A value of nil means preserve case. |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
153 A value of `case-replace' means preserve case if `case-replace' is nil. |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
154 Any other non-nil version means do not preserve case. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
155 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
156 This variable has an effect only when the value of |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
157 `dabbrev-case-fold-search' specifies to ignore case." |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
158 :type '(choice (const :tag "off" nil) |
22572
b1cba467a906
(dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
159 (const :tag "like M-x query-replace" case-replace) |
b1cba467a906
(dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
160 (other :tag "on" t)) |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
161 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
162 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
163 (defcustom dabbrev-abbrev-char-regexp nil |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
164 "*Regexp to recognize a character in an abbreviation or expansion. |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
165 This regexp will be surrounded with \\\\( ... \\\\) when actually used. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
166 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
167 Set this variable to \"\\\\sw\" if you want ordinary words or |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
168 \"\\\\sw\\\\|\\\\s_\" if you want symbols (including characters whose |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
169 syntax is \"symbol\" as well as those whose syntax is \"word\". |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
170 |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
171 The value nil has a special meaning: the abbreviation is from point to |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
172 previous word-start, but the search is for symbols. |
267 | 173 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
174 For instance, if you are programming in Lisp, `yes-or-no-p' is a symbol, |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
175 while `yes', `or', `no' and `p' are considered words. If this |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
176 variable is nil, then expanding `yes-or-no-' looks for a symbol |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
177 starting with or containing `no-'. If you set this variable to |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
178 \"\\\\sw\\\\|\\\\s_\", that expansion looks for a symbol starting with |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
179 `yes-or-no-'. Finally, if you set this variable to \"\\\\sw\", then |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
180 expanding `yes-or-no-' signals an error because `-' is not part of a word; |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
181 but expanding `yes-or-no' looks for a word starting with `no'. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
182 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
183 The recommended value is \"\\\\sw\\\\|\\\\s_\"." |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
184 :type '(choice (const nil) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
185 regexp) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
186 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
187 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
188 (defcustom dabbrev-check-all-buffers t |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
189 "*Non-nil means dabbrev package should search *all* buffers. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
190 |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
191 Dabbrev always searches the current buffer first. Then, if |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
192 `dabbrev-check-other-buffers' says so, it searches the buffers |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
193 designated by `dabbrev-select-buffers-function'. |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
194 |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
195 Then, if `dabbrev-check-all-buffers' is non-nil, dabbrev searches |
20604
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
196 all the other buffers, except those named in `dabbrev-ignored-buffer-names'." |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
197 :type 'boolean |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
198 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
199 |
22608
e1e08f5e0662
(dabbrev-ignored-buffer-names): Fix typo. Add *Buffer List*.
Richard M. Stallman <rms@gnu.org>
parents:
22572
diff
changeset
|
200 (defcustom dabbrev-ignored-buffer-names '("*Messages*" "*Buffer List*") |
20604
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
201 "*List of buffer names that dabbrev should not check." |
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
202 :type '(repeat (string :tag "Buffer name")) |
21669
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21153
diff
changeset
|
203 :group 'dabbrev |
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21153
diff
changeset
|
204 :version "20.3") |
20604
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
205 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
206 (defcustom dabbrev-check-other-buffers t |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
207 "*Should \\[dabbrev-expand] look in other buffers?\ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
208 |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
209 nil: Don't look in other buffers. |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
210 t: Also look for expansions in the buffers pointed out by |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
211 `dabbrev-select-buffers-function'. |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
212 Anything else: When we can't find any more expansions in |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
213 the current buffer, then ask the user whether to look in other |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
214 buffers too. |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
215 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
216 The default value is t." |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
217 :type '(choice (const :tag "off" nil) |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
218 (const :tag "on" t) |
22572
b1cba467a906
(dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents:
22250
diff
changeset
|
219 (other :tag "ask" other)) |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
220 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
221 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
222 ;; I guess setting this to a function that selects all C- or C++- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
223 ;; mode buffers would be a good choice for a debugging buffer, |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
224 ;; when debugging C- or C++-code. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
225 (defvar dabbrev-select-buffers-function 'dabbrev--select-buffers |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
226 "A function that selects buffers that should be searched by dabbrev. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
227 The function should take no arguments and return a list of buffers to |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
228 search for expansions. Have a look at `dabbrev--select-buffers' for |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
229 an example. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
230 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
231 A mode setting this variable should make it buffer local.") |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
232 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
233 (defcustom dabbrev-friend-buffer-function 'dabbrev--same-major-mode-p |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
234 "*A function to decide whether dabbrev should search OTHER-BUFFER. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
235 The function should take one argument, OTHER-BUFFER, and return |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
236 non-nil if that buffer should be searched. Have a look at |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
237 `dabbrev--same-major-mode-p' for an example. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
238 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
239 The value of `dabbrev-friend-buffer-function' has an effect only if |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
240 the value of `dabbrev-select-buffers-function' uses it. The function |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
241 `dabbrev--select-buffers' is one function you can use here. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
242 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
243 A mode setting this variable should make it buffer local." |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
244 :type 'function |
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
245 :group 'dabbrev) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
246 |
17411
f0ff96a35eb8
Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents:
17263
diff
changeset
|
247 (defcustom dabbrev-search-these-buffers-only nil |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
248 "If non-nil, a list of buffers which dabbrev should search. |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
249 If this variable is non-nil, dabbrev will only look in these buffers. |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
250 It will not even look in the current buffer if it is not a member of |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
251 this list.") |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
252 |
14169 | 253 ;;---------------------------------------------------------------- |
254 ;; Internal variables | |
255 ;;---------------------------------------------------------------- | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
256 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
257 ;; Last obarray of completions in `dabbrev-completion' |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
258 (defvar dabbrev--last-obarray nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
259 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
260 ;; Table of expansions seen so far |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
261 (defvar dabbrev--last-table nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
262 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
263 ;; Last string we tried to expand. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
264 (defvar dabbrev--last-abbreviation nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
265 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
266 ;; Location last abbreviation began |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
267 (defvar dabbrev--last-abbrev-location nil) |
267 | 268 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
269 ;; Direction of last dabbrevs search |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
270 (defvar dabbrev--last-direction 0) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
271 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
272 ;; Last expansion of an abbreviation. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
273 (defvar dabbrev--last-expansion nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
274 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
275 ;; Location the last expansion was found. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
276 (defvar dabbrev--last-expansion-location nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
277 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
278 ;; The list of remaining buffers with the same mode as current buffer. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
279 (defvar dabbrev--friend-buffer-list nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
280 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
281 ;; The buffer we looked in last. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
282 (defvar dabbrev--last-buffer nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
283 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
284 ;; The buffer we found the expansion last time. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
285 (defvar dabbrev--last-buffer-found nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
286 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
287 ;; The buffer we last did a completion in. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
288 (defvar dabbrev--last-completion-buffer nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
289 |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
290 ;; Non-nil means we should upcase |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
291 ;; when copying successive words. |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
292 (defvar dabbrev--last-case-pattern nil) |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
293 |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
294 ;; Same as dabbrev-check-other-buffers, but is set for every expand. |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
295 (defvar dabbrev--check-other-buffers dabbrev-check-other-buffers) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
296 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
297 ;; The regexp for recognizing a character in an abbreviation. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
298 (defvar dabbrev--abbrev-char-regexp nil) |
267 | 299 |
14169 | 300 ;;---------------------------------------------------------------- |
301 ;; Macros | |
302 ;;---------------------------------------------------------------- | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
303 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
304 ;;; Get the buffer that mini-buffer was activated from |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
305 (defsubst dabbrev--minibuffer-origin () |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
306 (car (cdr (buffer-list)))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
307 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
308 ;; Make a list of some of the elements of LIST. |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
309 ;; Check each element of LIST, storing it temporarily in the |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
310 ;; variable ELEMENT, and include it in the result |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
311 ;; if CONDITION evaluates non-nil. |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
312 (defmacro dabbrev-filter-elements (element list condition) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
313 (` (let (dabbrev-result dabbrev-tail (, element)) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
314 (setq dabbrev-tail (, list)) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
315 (while dabbrev-tail |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
316 (setq (, element) (car dabbrev-tail)) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
317 (if (, condition) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
318 (setq dabbrev-result (cons (, element) dabbrev-result))) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
319 (setq dabbrev-tail (cdr dabbrev-tail))) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
320 (nreverse dabbrev-result)))) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
321 |
14169 | 322 ;;---------------------------------------------------------------- |
323 ;; Exported functions | |
324 ;;---------------------------------------------------------------- | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
325 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
326 ;;;###autoload |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
327 (define-key esc-map "/" 'dabbrev-expand) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
328 ;;;??? Do we want this? |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
329 ;;;###autoload |
10251
bf1c7dcc69db
(esc-map): Delete excess closeparen.
Richard M. Stallman <rms@gnu.org>
parents:
10241
diff
changeset
|
330 (define-key esc-map [?\C-/] 'dabbrev-completion) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
331 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
332 ;;;###autoload |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
333 (defun dabbrev-completion (&optional arg) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
334 "Completion on current word. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
335 Like \\[dabbrev-expand] but finds all expansions in the current buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
336 and presents suggestions for completion. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
337 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
338 With a prefix argument, it searches all buffers accepted by the |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
339 function pointed out by `dabbrev-friend-buffer-function' to find the |
10232
ace1fffa8d96
(dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents:
10231
diff
changeset
|
340 completions. |
ace1fffa8d96
(dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents:
10231
diff
changeset
|
341 |
ace1fffa8d96
(dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents:
10231
diff
changeset
|
342 If the prefix argument is 16 (which comes from C-u C-u), |
ace1fffa8d96
(dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents:
10231
diff
changeset
|
343 then it searches *all* buffers. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
344 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
345 With no prefix argument, it reuses an old completion list |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
346 if there is a suitable one already." |
267 | 347 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
348 (interactive "*P") |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
349 (dabbrev--reset-global-variables) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
350 (let* ((dabbrev-check-other-buffers (and arg t)) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
351 (dabbrev-check-all-buffers |
10232
ace1fffa8d96
(dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents:
10231
diff
changeset
|
352 (and arg (= (prefix-numeric-value arg) 16))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
353 (abbrev (dabbrev--abbrev-at-point)) |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
354 (ignore-case-p (and (if (eq dabbrev-case-fold-search 'case-fold-search) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
355 case-fold-search |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
356 dabbrev-case-fold-search) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
357 (or (not dabbrev-upcase-means-case-search) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
358 (string= abbrev (downcase abbrev))))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
359 (my-obarray dabbrev--last-obarray) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
360 init) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
361 (save-excursion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
362 (if (and (null arg) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
363 my-obarray |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
364 (or (eq dabbrev--last-completion-buffer (current-buffer)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
365 (and (window-minibuffer-p (selected-window)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
366 (eq dabbrev--last-completion-buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
367 (dabbrev--minibuffer-origin)))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
368 dabbrev--last-abbreviation |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
369 (>= (length abbrev) (length dabbrev--last-abbreviation)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
370 (string= dabbrev--last-abbreviation |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
371 (substring abbrev 0 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
372 (length dabbrev--last-abbreviation))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
373 (setq init (try-completion abbrev my-obarray))) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
374 ;; We can reuse the existing completion list. |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
375 nil |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
376 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
377 ;; New abbreviation to expand. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
378 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
379 (setq dabbrev--last-abbreviation abbrev) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
380 ;; Find all expansion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
381 (let ((completion-list |
15751
022815791330
(dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents:
15652
diff
changeset
|
382 (dabbrev--find-all-expansions abbrev ignore-case-p)) |
022815791330
(dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents:
15652
diff
changeset
|
383 (completion-ignore-case ignore-case-p)) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
384 ;; Make an obarray with all expansions |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
385 (setq my-obarray (make-vector (length completion-list) 0)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
386 (or (> (length my-obarray) 0) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
387 (error "No dynamic expansion for \"%s\" found%s" |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
388 abbrev |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
389 (if dabbrev--check-other-buffers "" " in this-buffer"))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
390 (cond |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
391 ((or (not ignore-case-p) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
392 (not dabbrev-case-replace)) |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
393 (mapcar (function (lambda (string) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
394 (intern string my-obarray))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
395 completion-list)) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
396 ((string= abbrev (upcase abbrev)) |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
397 (mapcar (function (lambda (string) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
398 (intern (upcase string) my-obarray))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
399 completion-list)) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
400 ((string= (substring abbrev 0 1) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
401 (upcase (substring abbrev 0 1))) |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
402 (mapcar (function (lambda (string) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
403 (intern (capitalize string) my-obarray))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
404 completion-list)) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
405 (t |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
406 (mapcar (function (lambda (string) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
407 (intern (downcase string) my-obarray))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
408 completion-list))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
409 (setq dabbrev--last-obarray my-obarray) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
410 (setq dabbrev--last-completion-buffer (current-buffer)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
411 ;; Find the longest common string. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
412 (setq init (try-completion abbrev my-obarray))))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
413 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
414 ;; Let the user choose between the expansions |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
415 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
416 (or (stringp init) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
417 (setq init abbrev)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
418 (cond |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
419 ;; * Replace string fragment with matched common substring completion. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
420 ((and (not (string-equal init "")) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
421 (not (string-equal (downcase init) (downcase abbrev)))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
422 (if (> (length (all-completions init my-obarray)) 1) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
423 (message "Repeat `%s' to see all completions" |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
424 (key-description (this-command-keys))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
425 (message "The only possible completion")) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
426 (dabbrev--substitute-expansion nil abbrev init)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
427 (t |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
428 ;; * String is a common substring completion already. Make list. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
429 (message "Making completion list...") |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
430 (with-output-to-temp-buffer " *Completions*" |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
431 (display-completion-list (all-completions init my-obarray))) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
432 (message "Making completion list...done"))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
433 (and (window-minibuffer-p (selected-window)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
434 (message nil)))) |
267 | 435 |
436 ;;;###autoload | |
437 (defun dabbrev-expand (arg) | |
438 "Expand previous word \"dynamically\". | |
439 | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
440 Expands to the most recent, preceding word for which this is a prefix. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
441 If no suitable preceding word is found, words following point are |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
442 considered. If still no suitable word is found, then look in the |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
443 buffers accepted by the function pointed out by variable |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
444 `dabbrev-friend-buffer-function'. |
267 | 445 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
446 A positive prefix argument, N, says to take the Nth backward *distinct* |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
447 possibility. A negative argument says search forward. |
267 | 448 |
449 If the cursor has not moved from the end of the previous expansion and | |
450 no argument is given, replace the previously-made expansion | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
451 with the next possible expansion not yet tried. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
452 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
453 The variable `dabbrev-backward-only' may be used to limit the |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
454 direction of search to backward if set non-nil. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
455 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
456 See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]." |
267 | 457 (interactive "*P") |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
458 (let (abbrev record-case-pattern |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
459 expansion old direction (orig-point (point))) |
267 | 460 ;; abbrev -- the abbrev to expand |
461 ;; expansion -- the expansion found (eventually) or nil until then | |
462 ;; old -- the text currently in the buffer | |
463 ;; (the abbrev, or the previously-made expansion) | |
464 (save-excursion | |
465 (if (and (null arg) | |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
466 (markerp dabbrev--last-abbrev-location) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
467 (marker-position dabbrev--last-abbrev-location) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
468 (or (eq last-command this-command) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
469 (and (window-minibuffer-p (selected-window)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
470 (= dabbrev--last-abbrev-location |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
471 (point))))) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
472 ;; Find a different expansion for the same abbrev as last time. |
267 | 473 (progn |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
474 (setq abbrev dabbrev--last-abbreviation) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
475 (setq old dabbrev--last-expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
476 (setq direction dabbrev--last-direction)) |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
477 ;; If the user inserts a space after expanding |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
478 ;; and then asks to expand again, always fetch the next word. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
479 (if (and (eq (preceding-char) ?\ ) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
480 (markerp dabbrev--last-abbrev-location) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
481 (marker-position dabbrev--last-abbrev-location) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
482 (= (point) (1+ dabbrev--last-abbrev-location))) |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
483 (progn |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
484 ;; The "abbrev" to expand is just the space. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
485 (setq abbrev " ") |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
486 (save-excursion |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
487 (if dabbrev--last-buffer |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
488 (set-buffer dabbrev--last-buffer)) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
489 ;; Find the end of the last "expansion" word. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
490 (if (or (eq dabbrev--last-direction 1) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
491 (and (eq dabbrev--last-direction 0) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
492 (< dabbrev--last-expansion-location (point)))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
493 (setq dabbrev--last-expansion-location |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
494 (+ dabbrev--last-expansion-location |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
495 (length dabbrev--last-expansion)))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
496 (goto-char dabbrev--last-expansion-location) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
497 ;; Take the following word, with intermediate separators, |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
498 ;; as our expansion this time. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
499 (re-search-forward |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
500 (concat "\\(\\(" dabbrev--abbrev-char-regexp "\\)+\\)")) |
17864
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
501 (setq expansion (buffer-substring-no-properties |
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
502 dabbrev--last-expansion-location (point))) |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
503 (if dabbrev--last-case-pattern |
15812
63076f19cbc5
(dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents:
15789
diff
changeset
|
504 (setq expansion (upcase expansion))) |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
505 |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
506 ;; Record the end of this expansion, in case we repeat this. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
507 (setq dabbrev--last-expansion-location (point))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
508 ;; Indicate that dabbrev--last-expansion-location is |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
509 ;; at the end of the expansion. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
510 (setq dabbrev--last-direction -1)) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
511 |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
512 ;; We have a different abbrev to expand. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
513 (dabbrev--reset-global-variables) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
514 (setq direction (if (null arg) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
515 (if dabbrev-backward-only 1 0) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
516 (prefix-numeric-value arg))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
517 (setq abbrev (dabbrev--abbrev-at-point)) |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
518 (setq record-case-pattern t) |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
519 (setq old nil))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
520 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
521 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
522 ;; Find the expansion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
523 ;;-------------------------------- |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
524 (or expansion |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
525 (setq expansion |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
526 (dabbrev--find-expansion abbrev direction |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
527 (and (if (eq dabbrev-case-fold-search 'case-fold-search) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
528 case-fold-search |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
529 dabbrev-case-fold-search) |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
530 (or (not dabbrev-upcase-means-case-search) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
531 (string= abbrev (downcase abbrev)))))))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
532 (cond |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
533 ((not expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
534 (dabbrev--reset-global-variables) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
535 (if old |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
536 (save-excursion |
12724
c3cb2b06e05f
(dabbrev-expand): Save previous point for undo.
Richard M. Stallman <rms@gnu.org>
parents:
12555
diff
changeset
|
537 (setq buffer-undo-list (cons orig-point buffer-undo-list)) |
13256
d9c469af1ee0
(dabbrev-expand): When no more expansions,
Richard M. Stallman <rms@gnu.org>
parents:
12724
diff
changeset
|
538 ;; Put back the original abbrev with its original case pattern. |
d9c469af1ee0
(dabbrev-expand): When no more expansions,
Richard M. Stallman <rms@gnu.org>
parents:
12724
diff
changeset
|
539 (search-backward old) |
d9c469af1ee0
(dabbrev-expand): When no more expansions,
Richard M. Stallman <rms@gnu.org>
parents:
12724
diff
changeset
|
540 (insert abbrev) |
d9c469af1ee0
(dabbrev-expand): When no more expansions,
Richard M. Stallman <rms@gnu.org>
parents:
12724
diff
changeset
|
541 (delete-region (point) (+ (point) (length old))))) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
542 (error "No%s dynamic expansion for `%s' found" |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
543 (if old " further" "") abbrev)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
544 (t |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
545 (if (not (eq dabbrev--last-buffer dabbrev--last-buffer-found)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
546 (progn |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
547 (message "Expansion found in '%s'" |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
548 (buffer-name dabbrev--last-buffer)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
549 (setq dabbrev--last-buffer-found dabbrev--last-buffer)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
550 (message nil)) |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
551 (if (and (or (eq (current-buffer) dabbrev--last-buffer) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
552 (null dabbrev--last-buffer)) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
553 (numberp dabbrev--last-expansion-location) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
554 (and (> dabbrev--last-expansion-location (point)))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
555 (setq dabbrev--last-expansion-location |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
556 (copy-marker dabbrev--last-expansion-location))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
557 ;; Success: stick it in and return. |
12724
c3cb2b06e05f
(dabbrev-expand): Save previous point for undo.
Richard M. Stallman <rms@gnu.org>
parents:
12555
diff
changeset
|
558 (setq buffer-undo-list (cons orig-point buffer-undo-list)) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
559 (dabbrev--substitute-expansion old abbrev expansion) |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
560 |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
561 ;; If we are not copying successive words now, |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
562 ;; set dabbrev--last-case-pattern. |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
563 (and record-case-pattern |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
564 (setq dabbrev--last-case-pattern |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
565 (and (if (eq dabbrev-case-fold-search 'case-fold-search) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
566 case-fold-search |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
567 dabbrev-case-fold-search) |
15834
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
568 (not dabbrev-upcase-means-case-search) |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
569 (equal abbrev (upcase abbrev))))) |
71ede15e1ca3
(dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15812
diff
changeset
|
570 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
571 ;; Save state for re-expand. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
572 (setq dabbrev--last-expansion expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
573 (setq dabbrev--last-abbreviation abbrev) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
574 (setq dabbrev--last-abbrev-location (point-marker)))))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
575 |
14169 | 576 ;;---------------------------------------------------------------- |
577 ;; Local functions | |
578 ;;---------------------------------------------------------------- | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
579 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
580 ;;; Checks if OTHER-BUFFER has the same major mode as current buffer. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
581 (defun dabbrev--same-major-mode-p (other-buffer) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
582 (eq major-mode |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
583 (save-excursion |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
584 (set-buffer other-buffer) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
585 major-mode))) |
267 | 586 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
587 ;;; Back over all abbrev type characters and then moves forward over |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
588 ;;; all skip characters. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
589 (defun dabbrev--goto-start-of-abbrev () |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
590 ;; Move backwards over abbrev chars |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
591 (save-match-data |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
592 (if (not (bobp)) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
593 (progn |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
594 (forward-char -1) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
595 (while (and (looking-at dabbrev--abbrev-char-regexp) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
596 (not (bobp))) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
597 (forward-char -1)) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
598 (or (looking-at dabbrev--abbrev-char-regexp) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
599 (forward-char 1)))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
600 (and dabbrev-abbrev-skip-leading-regexp |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
601 (while (looking-at dabbrev-abbrev-skip-leading-regexp) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
602 (forward-char 1))))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
603 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
604 ;;; Extract the symbol at point to serve as abbreviation. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
605 (defun dabbrev--abbrev-at-point () |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
606 ;; Check for error |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
607 (if (bobp) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
608 (error "No possible abbreviation preceding point")) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
609 ;; Return abbrev at point |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
610 (save-excursion |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
611 ;; Record the end of the abbreviation. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
612 (setq dabbrev--last-abbrev-location (point)) |
11976
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
613 ;; If we aren't right after an abbreviation, |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
614 ;; move point back to just after one. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
615 ;; This is so the user can get successive words |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
616 ;; by typing the punctuation followed by M-/. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
617 (save-match-data |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
618 (if (save-excursion |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
619 (forward-char -1) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
620 (not (looking-at (concat "\\(" |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
621 (or dabbrev-abbrev-char-regexp |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
622 "\\sw\\|\\s_") |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
623 "\\)+")))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
624 (if (re-search-backward (or dabbrev-abbrev-char-regexp |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
625 "\\sw\\|\\s_") |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
626 nil t) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
627 (forward-char 1) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
628 (error "No possible abbreviation preceding point")))) |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
629 ;; Now find the beginning of that one. |
e862c6697f39
(dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents:
11820
diff
changeset
|
630 (dabbrev--goto-start-of-abbrev) |
17864
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
631 (buffer-substring-no-properties |
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
632 dabbrev--last-abbrev-location (point)))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
633 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
634 ;;; Initializes all global variables |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
635 (defun dabbrev--reset-global-variables () |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
636 ;; dabbrev--last-obarray and dabbrev--last-completion-buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
637 ;; must not be reset here. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
638 (setq dabbrev--last-table nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
639 dabbrev--last-abbreviation nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
640 dabbrev--last-abbrev-location nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
641 dabbrev--last-direction nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
642 dabbrev--last-expansion nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
643 dabbrev--last-expansion-location nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
644 dabbrev--friend-buffer-list nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
645 dabbrev--last-buffer nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
646 dabbrev--last-buffer-found nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
647 dabbrev--abbrev-char-regexp (or dabbrev-abbrev-char-regexp |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
648 "\\sw\\|\\s_") |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
649 dabbrev--check-other-buffers dabbrev-check-other-buffers)) |
267 | 650 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
651 ;;; Find all buffers that are considered "friends" according to the |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
652 ;;; function pointed out by dabbrev-friend-buffer-function. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
653 (defun dabbrev--select-buffers () |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
654 (save-excursion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
655 (and (window-minibuffer-p (selected-window)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
656 (set-buffer (dabbrev--minibuffer-origin))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
657 (let ((orig-buffer (current-buffer))) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
658 (dabbrev-filter-elements |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
659 buffer (buffer-list) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
660 (and (not (eq orig-buffer buffer)) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
661 (boundp 'dabbrev-friend-buffer-function) |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
662 (funcall dabbrev-friend-buffer-function buffer)))))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
663 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
664 ;;; Search for ABBREV, N times, normally looking forward, |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
665 ;;; but looking in reverse instead if REVERSE is non-nil. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
666 (defun dabbrev--try-find (abbrev reverse n ignore-case) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
667 (save-excursion |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
668 (save-restriction |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
669 (widen) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
670 (let ((expansion nil)) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
671 (and dabbrev--last-expansion-location |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
672 (goto-char dabbrev--last-expansion-location)) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
673 (let ((case-fold-search ignore-case) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
674 (count n)) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
675 (while (and (> count 0) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
676 (setq expansion (dabbrev--search abbrev |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
677 reverse |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
678 ignore-case))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
679 (setq count (1- count)))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
680 (and expansion |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
681 (setq dabbrev--last-expansion-location (point))) |
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
682 expansion)))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
683 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
684 ;;; Find all expansions of ABBREV |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
685 (defun dabbrev--find-all-expansions (abbrev ignore-case) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
686 (let ((all-expansions nil) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
687 expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
688 (save-excursion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
689 (goto-char (point-min)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
690 (while (setq expansion (dabbrev--find-expansion abbrev -1 ignore-case)) |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
691 (setq all-expansions (cons expansion all-expansions)))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
692 all-expansions)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
693 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
694 (defun dabbrev--scanning-message () |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
695 (message "Scanning `%s'" (buffer-name (current-buffer)))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
696 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
697 ;;; Find one occasion of ABBREV. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
698 ;;; DIRECTION > 0 means look that many times backwards. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
699 ;;; DIRECTION < 0 means look that many times forward. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
700 ;;; DIRECTION = 0 means try both backward and forward. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
701 ;;; IGNORE-CASE non-nil means ignore case when searching. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
702 (defun dabbrev--find-expansion (abbrev direction ignore-case) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
703 (let (expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
704 (save-excursion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
705 (cond |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
706 (dabbrev--last-buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
707 (set-buffer dabbrev--last-buffer) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
708 (dabbrev--scanning-message)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
709 ((and (not dabbrev-search-these-buffers-only) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
710 (window-minibuffer-p (selected-window))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
711 (set-buffer (dabbrev--minibuffer-origin)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
712 ;; In the minibuffer-origin buffer we will only search from |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
713 ;; the top and down. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
714 (goto-char (point-min)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
715 (setq direction -1) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
716 (dabbrev--scanning-message))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
717 (cond |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
718 ;; ------------------------------------------ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
719 ;; Look backwards |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
720 ;; ------------------------------------------ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
721 ((and (not dabbrev-search-these-buffers-only) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
722 (>= direction 0) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
723 (setq dabbrev--last-direction (min 1 direction)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
724 (setq expansion (dabbrev--try-find abbrev t |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
725 (max 1 direction) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
726 ignore-case))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
727 expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
728 ;; ------------------------------------------ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
729 ;; Look forward |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
730 ;; ------------------------------------------ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
731 ((and (or (not dabbrev-search-these-buffers-only) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
732 dabbrev--last-buffer) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
733 (<= direction 0) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
734 (setq dabbrev--last-direction -1) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
735 (setq expansion (dabbrev--try-find abbrev nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
736 (max 1 (- direction)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
737 ignore-case))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
738 expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
739 ;; ------------------------------------------ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
740 ;; Look in other buffers. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
741 ;; Start at (point-min) and look forward. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
742 ;; ------------------------------------------ |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
743 (t |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
744 (setq dabbrev--last-direction -1) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
745 ;; Make sure that we should check other buffers |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
746 (or dabbrev--friend-buffer-list |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
747 dabbrev--last-buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
748 (setq dabbrev--friend-buffer-list |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
749 (mapcar (function get-buffer) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
750 dabbrev-search-these-buffers-only)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
751 (not dabbrev--check-other-buffers) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
752 (not (or (eq dabbrev--check-other-buffers t) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
753 (progn |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
754 (setq dabbrev--check-other-buffers |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
755 (y-or-n-p "Scan other buffers also? "))))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
756 (let* (friend-buffer-list non-friend-buffer-list) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
757 (setq dabbrev--friend-buffer-list |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
758 (funcall dabbrev-select-buffers-function)) |
11820
362251066737
(dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents:
10251
diff
changeset
|
759 (if dabbrev-check-all-buffers |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
760 (setq non-friend-buffer-list |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
761 (nreverse |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
762 (dabbrev-filter-elements |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
763 buffer (buffer-list) |
20604
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
764 (and (not (member (buffer-name buffer) |
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
765 dabbrev-ignored-buffer-names)) |
cb1af13d913c
(dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19827
diff
changeset
|
766 (not (memq buffer dabbrev--friend-buffer-list))))) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
767 dabbrev--friend-buffer-list |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
768 (append dabbrev--friend-buffer-list |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
769 non-friend-buffer-list))))) |
13257
679fc0917c11
(dabbrev--find-expansion): Move buffers that are visible on the screen
Richard M. Stallman <rms@gnu.org>
parents:
13256
diff
changeset
|
770 ;; Move buffers that are visible on the screen |
23306
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
771 ;; to the front of the list. Remove the current buffer. |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
772 (when dabbrev--friend-buffer-list |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
773 (let ((w (next-window (selected-window)))) |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
774 (while (not (eq w (selected-window))) |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
775 (setq dabbrev--friend-buffer-list |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
776 (cons (window-buffer w) |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
777 (delq (window-buffer w) dabbrev--friend-buffer-list))) |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
778 (setq w (next-window w)))) |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
779 (setq dabbrev--friend-buffer-list |
4beab023a902
(dabbrev--find-expansion): Don't scan the current buffer
Karl Heuer <kwzh@gnu.org>
parents:
22608
diff
changeset
|
780 (delq (current-buffer) dabbrev--friend-buffer-list))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
781 ;; Walk through the buffers |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
782 (while (and (not expansion) dabbrev--friend-buffer-list) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
783 (setq dabbrev--last-buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
784 (car dabbrev--friend-buffer-list)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
785 (setq dabbrev--friend-buffer-list |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
786 (cdr dabbrev--friend-buffer-list)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
787 (set-buffer dabbrev--last-buffer) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
788 (dabbrev--scanning-message) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
789 (setq dabbrev--last-expansion-location (point-min)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
790 (setq expansion (dabbrev--try-find abbrev nil 1 ignore-case))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
791 expansion))))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
792 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
793 (defun dabbrev--safe-replace-match (string &optional fixedcase literal) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
794 (if (eq major-mode 'picture-mode) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
795 (picture-replace-match string fixedcase literal) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
796 (replace-match string fixedcase literal))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
797 |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
798 ;;;---------------------------------------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
799 ;;; Substitute the current string in buffer with the expansion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
800 ;;; OLD is nil or the last expansion substring. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
801 ;;; ABBREV is the abbreviation we are working with. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
802 ;;; EXPANSION is the expansion substring. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
803 (defun dabbrev--substitute-expansion (old abbrev expansion) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
804 ;;(undo-boundary) |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
805 (let ((use-case-replace (and (if (eq dabbrev-case-fold-search 'case-fold-search) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
806 case-fold-search |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
807 dabbrev-case-fold-search) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
808 (or (not dabbrev-upcase-means-case-search) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
809 (string= abbrev (downcase abbrev))) |
17711
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
810 (if (eq dabbrev-case-replace 'case-replace) |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
811 case-replace |
3484851d83b9
(dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents:
17411
diff
changeset
|
812 dabbrev-case-replace)))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
813 (and nil use-case-replace |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
814 (setq old (concat abbrev (or old ""))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
815 (setq expansion (concat abbrev expansion))) |
17263
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
816 ;; If the expansion has mixed case |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
817 ;; and it is not simply a capitalized word, |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
818 ;; or if the abbrev has mixed case, |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
819 ;; and if the given abbrev's case pattern |
15751
022815791330
(dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents:
15652
diff
changeset
|
820 ;; matches the start of the expansion, |
022815791330
(dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents:
15652
diff
changeset
|
821 ;; copy the expansion's case |
022815791330
(dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents:
15652
diff
changeset
|
822 ;; instead of downcasing all the rest. |
17263
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
823 (let ((expansion-rest (substring expansion 1))) |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
824 (if (and (not (and (or (string= expansion-rest (downcase expansion-rest)) |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
825 (string= expansion-rest (upcase expansion-rest))) |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
826 (or (string= abbrev (downcase abbrev)) |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
827 (string= abbrev (upcase abbrev))))) |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
828 (string= abbrev |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
829 (substring expansion 0 (length abbrev)))) |
b712c50d2c84
(dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents:
15834
diff
changeset
|
830 (setq use-case-replace nil))) |
15812
63076f19cbc5
(dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents:
15789
diff
changeset
|
831 (if (equal abbrev " ") |
63076f19cbc5
(dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents:
15789
diff
changeset
|
832 (setq use-case-replace nil)) |
63076f19cbc5
(dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents:
15789
diff
changeset
|
833 (if use-case-replace |
63076f19cbc5
(dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents:
15789
diff
changeset
|
834 (setq expansion (downcase expansion))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
835 (if old |
267 | 836 (save-excursion |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
837 (search-backward old)) |
21153 | 838 ;;(set-match-data (list (point-marker) (point-marker))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
839 (search-backward abbrev)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
840 ;; Make case of replacement conform to case of abbreviation |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
841 ;; provided (1) that kind of thing is enabled in this buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
842 ;; and (2) the replacement itself is all lower case. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
843 (dabbrev--safe-replace-match expansion |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
844 (not use-case-replace) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
845 t))) |
267 | 846 |
847 | |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
848 ;;;---------------------------------------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
849 ;;; Search function used by dabbrevs library. |
267 | 850 |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
851 ;;; ABBREV is string to find as prefix of word. Second arg, REVERSE, |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
852 ;;; is t for reverse search, nil for forward. Variable dabbrev-limit |
14040 | 853 ;;; controls the maximum search region size. Third argument IGNORE-CASE |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
854 ;;; non-nil means treat case as insignificant while looking for a match |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
855 ;;; and when comparing with previous matches. Also if that's non-nil |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
856 ;;; and the match is found at the beginning of a sentence and is in |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
857 ;;; lower case except for the initial then it is converted to all lower |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
858 ;;; case for return. |
267 | 859 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
860 ;;; Table of expansions already seen is examined in buffer |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
861 ;;; `dabbrev--last-table' so that only distinct possibilities are found |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
862 ;;; by dabbrev-re-expand. |
267 | 863 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
864 ;;; Value is the expansion, or nil if not found. |
267 | 865 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
866 (defun dabbrev--search (abbrev reverse ignore-case) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
867 (save-match-data |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
868 (let ((pattern1 (concat (regexp-quote abbrev) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
869 "\\(" dabbrev--abbrev-char-regexp "\\)")) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
870 (pattern2 (concat (regexp-quote abbrev) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
871 "\\(\\(" dabbrev--abbrev-char-regexp "\\)+\\)")) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
872 (found-string nil)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
873 ;; Limited search. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
874 (save-restriction |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
875 (and dabbrev-limit |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
876 (narrow-to-region dabbrev--last-expansion-location |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
877 (+ (point) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
878 (if reverse (- dabbrev-limit) dabbrev-limit)))) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
879 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
880 ;; Look for a distinct expansion, using dabbrev--last-table. |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
881 ;;-------------------------------- |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
882 (while (and (not found-string) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
883 (if reverse |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
884 (re-search-backward pattern1 nil t) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
885 (re-search-forward pattern1 nil t))) |
12555
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
886 (goto-char (match-beginning 0)) |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
887 ;; In case we matched in the middle of a word, |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
888 ;; back up to start of word and verify we still match. |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
889 (dabbrev--goto-start-of-abbrev) |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
890 |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
891 (if (not (looking-at pattern1)) |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
892 nil |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
893 ;; We have a truly valid match. Find the end. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
894 (re-search-forward pattern2) |
17864
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
895 (setq found-string (buffer-substring-no-properties |
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
896 (match-beginning 1) (match-end 1))) |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
897 (and ignore-case (setq found-string (downcase found-string))) |
12555
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
898 ;; Ignore this match if it's already in the table. |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
899 (if (dabbrev-filter-elements |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
900 table-string dabbrev--last-table |
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
901 (string= found-string table-string)) |
12555
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
902 (setq found-string nil))) |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
903 ;; Prepare to continue searching. |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
904 (if reverse |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
905 (goto-char (match-beginning 0)) |
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
906 (goto-char (match-end 0)))) |
12555
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
907 ;; If we found something, use it. |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
908 (if found-string |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
909 ;; Put it into `dabbrev--last-table' |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
910 ;; and return it (either downcased, or as is). |
17864
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
911 (let ((result (buffer-substring-no-properties |
c662a8633943
(dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents:
17711
diff
changeset
|
912 (match-beginning 0) (match-end 0)))) |
12555
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
913 (setq dabbrev--last-table |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
914 (cons found-string dabbrev--last-table)) |
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
915 (if (and ignore-case (eval dabbrev-case-replace)) |
15751
022815791330
(dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents:
15652
diff
changeset
|
916 result |
12555
a2a2aa391773
(dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents:
11976
diff
changeset
|
917 result))))))) |
267 | 918 |
10230
7396503653cf
Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents:
5307
diff
changeset
|
919 (provide 'dabbrev) |
10231
e88ff4b30786
Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents:
10230
diff
changeset
|
920 |
14169 | 921 ;;; dabbrev.el ends here |