annotate lisp/dabbrev.el @ 51242:661e2fe7e775

(autoconf-mode setups): Recognise AH_ and AU_ entries in "(autoconf)Autoconf Macro Index". Add "(autoconf)M4 Macro Index" and "(autoconf)Autotest Macro Index". Remove duplicate copy of "(automake)Macro and Variable Index". Keep automake after all autoconf possibilities, so as to prefer those.
author Juanma Barranquero <lekktu@gmail.com>
date Sun, 25 May 2003 21:03:57 +0000
parents 37645a051842
children 509508a92422 d7ddb3e565de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
2
35636
4eb554667665 (dabbrev--substitute-expansion):
Gerd Moellmann <gerd@gnu.org>
parents: 34596
diff changeset
3 ;; Copyright (C) 1985, 86, 92, 94, 96, 1997, 2000, 2001
28486
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
4 ;; Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
5
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
6 ;; Author: Don Morrison
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
7 ;; 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
8 ;; Created: 16 Mars 1992
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
9 ;; Lindberg's last update version: 5.7
22250
a77d473867b8 *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21669
diff changeset
10 ;; Keywords: abbrev expand completion convenience
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
12 ;; This file is part of GNU Emacs.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
13
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
14 ;; GNU Emacs is free software; you can redistribute it and/or modify
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 ;; it under the terms of the GNU General Public License as published by
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
16 ;; the Free Software Foundation; either version 2, or (at your option)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
17 ;; any later version.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
18
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
19 ;; GNU Emacs is distributed in the hope that it will be useful,
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 ;; GNU General Public License for more details.
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
23
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
25 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
26 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
27 ;; Boston, MA 02111-1307, USA.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 793
diff changeset
29 ;;; Commentary:
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
31 ;; 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
32 ;; 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
33 ;; them.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
34 ;;
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
35 ;; 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
36 ;; 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
37 ;;
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
38 ;; 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
39 ;; features of this package.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
40
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
41 ;;; 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
42
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
43 ;; 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
44 ;; 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
45 ;; dabbrev-case-replace nil t
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
46 ;;
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
47 ;; 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
48 ;; (set (make-local-variable 'dabbrev-case-replace) nil)
14040
187735b53d52 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13501
diff changeset
49 ;; 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
50 ;;
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
51 ;; 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
52 ;; (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
53 ;; `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
54 ;; 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
55
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
56 ;; 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
57 ;; 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
58 ;; 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
59
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
60 ;; 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
61 ;; the article for expansion):
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
62 ;; (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
63 ;; (lambda (buffer)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
64 ;; (save-excursion
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
65 ;; (set-buffer buffer)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
66 ;; (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
67
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
68
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
69 ;; Known bugs and limitations.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
70 ;; - 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
71 ;; minibuffer.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
72 ;; - 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
73 ;; 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
74
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
75 ;; Future enhancements
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
76 ;; - 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
77 ;; - 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
78 ;; the nearest expansion.
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
79 ;; - 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
80 ;; 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
81
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
82 ;;; These people gave suggestions:
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
83 ;; [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
84 ;; [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
85 ;; [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
86 ;; [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
87 ;; [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
88 ;; [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
89 ;; [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
90 ;; [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
91 ;; [Petri] Petri Raitio <per@tekla.fi>
20604
cb1af13d913c (dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19827
diff changeset
92 ;; [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
93 ;; [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
94 ;; ... and to all the people who have participated in the beta tests.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 793
diff changeset
96 ;;; Code:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 793
diff changeset
97
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
98 ;;----------------------------------------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
99 ;; Customization variables
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
100 ;;----------------------------------------------------------------
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
101
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
102 (defgroup dabbrev nil
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
103 "Dynamic Abbreviations"
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
104 :tag "Dynamic Abbreviations"
22250
a77d473867b8 *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21669
diff changeset
105 :group 'abbrev
a77d473867b8 *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21669
diff changeset
106 :group 'convenience)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
107
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
108 (defcustom dabbrev-backward-only nil
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
109 "*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
110 :type 'boolean
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
111 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
112
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
113 (defcustom dabbrev-limit nil
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
114 "*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
115 :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
116 integer)
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
117 :group 'dabbrev)
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
118
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
119 (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
120 "*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
121
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
122 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
123 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
124 \(For example, in Makefiles.\)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
125
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
126 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
127 :type '(choice regexp
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
128 (const :tag "off" nil))
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
129 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
130
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
131 (defcustom dabbrev--eliminate-newlines t
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
132 "*Non-nil means dabbrev should not insert newlines.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
133 Instead it converts them to spaces."
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
134 :type 'boolean
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
135 :group 'dabbrev)
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
136
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
137 (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
138 "*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
139 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
140 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
141 if `case-fold-search' is nil.
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
142 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
143 :type '(choice (const :tag "off" nil)
22572
b1cba467a906 (dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents: 22250
diff changeset
144 (const :tag "like search" case-fold-search)
b1cba467a906 (dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents: 22250
diff changeset
145 (other :tag "on" t))
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
146 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
147
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
148 (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
149 "*The significance of an uppercase character in an abbreviation.
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
150 nil means case fold search when searching for possible expansions;
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
151 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
152
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
153 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
154 `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
155 :type 'boolean
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
156 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
157
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
158 (defcustom dabbrev-case-distinction 'case-replace
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
159 "*Whether dabbrev treats expansions as the same if they differ in case.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
160
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
161 A value of nil means treat them as different.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
162 A value of `case-replace' means distinguish them if `case-replace' is nil.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
163 Any other non-nil value means to treat them as the same.
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
164
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
165 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
166 `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
167 :type '(choice (const :tag "off" nil)
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
168 (const :tag "based on `case-replace'" case-replace)
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
169 (other :tag "on" t))
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
170 :group 'dabbrev
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
171 :version "21.4")
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
172
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
173 (defcustom dabbrev-case-replace 'case-replace
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
174 "*Whether dabbrev applies the abbreviations's case pattern to the expansion.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
175
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
176 A value of nil means preserve the expansion's case pattern.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
177 A value of `case-replace' means preserve it if `case-replace' is nil.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
178 Any other non-nil value means modify the expansion
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
179 by applying the abbreviation's case pattern to it.
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
180
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
181 This variable has an effect only when the value of
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
182 `dabbrev-case-fold-search' specifies to ignore case."
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
183 :type '(choice (const :tag "off" nil)
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
184 (const :tag "based on `case-replace'" case-replace)
22572
b1cba467a906 (dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents: 22250
diff changeset
185 (other :tag "on" t))
17411
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-abbrev-char-regexp nil
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
189 "*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
190 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
191
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
192 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
193 \"\\\\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
194 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
195
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
196 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
197 previous word-start, but the search is for symbols.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
198
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
199 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
200 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
201 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
202 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
203 \"\\\\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
204 `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
205 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
206 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
207
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
208 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
209 :type '(choice (const nil)
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
210 regexp)
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
211 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
212
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
213 (defcustom dabbrev-check-all-buffers t
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
214 "*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
215
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
216 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
217 `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
218 designated by `dabbrev-select-buffers-function'.
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
219
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
220 Then, if `dabbrev-check-all-buffers' is non-nil, dabbrev searches
28486
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
221 all the other buffers, except those named in `dabbrev-ignored-buffer-names',
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
222 or matched by `dabbrev-ignored-regexps'."
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
223 :type 'boolean
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
224 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
225
22608
e1e08f5e0662 (dabbrev-ignored-buffer-names): Fix typo. Add *Buffer List*.
Richard M. Stallman <rms@gnu.org>
parents: 22572
diff changeset
226 (defcustom dabbrev-ignored-buffer-names '("*Messages*" "*Buffer List*")
28486
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
227 "*List of buffer names that dabbrev should not check.
35921
d74e2e8f6c1f (dabbrev-ignored-buffer-regexps): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35636
diff changeset
228 See also `dabbrev-ignored-buffer-regexps'."
20604
cb1af13d913c (dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19827
diff changeset
229 :type '(repeat (string :tag "Buffer name"))
21669
9861518505cb *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21153
diff changeset
230 :group 'dabbrev
9861518505cb *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21153
diff changeset
231 :version "20.3")
20604
cb1af13d913c (dabbrev-ignored-buffer-names): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19827
diff changeset
232
35921
d74e2e8f6c1f (dabbrev-ignored-buffer-regexps): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35636
diff changeset
233 (defcustom dabbrev-ignored-buffer-regexps nil
28486
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
234 "*List of regexps matching names of buffers that dabbrev should not check.
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
235 See also `dabbrev-ignored-buffer-names'."
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
236 :type '(repeat regexp)
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
237 :group 'dabbrev
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
238 :version "21.1")
7b327ea7706b (dabbrev-ignored-regexps): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents: 26459
diff changeset
239
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
240 (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
241 "*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
242
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
243 nil: Don't look in other buffers.
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
244 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
245 `dabbrev-select-buffers-function'.
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
246 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
247 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
248 buffers too.
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
249
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
250 The default value is t."
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
251 :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
252 (const :tag "on" t)
22572
b1cba467a906 (dabbrev-case-fold-search, dabbrev-case-replace,
Andreas Schwab <schwab@suse.de>
parents: 22250
diff changeset
253 (other :tag "ask" other))
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
254 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
255
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
256 ;; 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
257 ;; 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
258 ;; 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
259 (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
260 "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
261 The function should take no arguments and return a list of buffers to
37573
210efced5807 (dabbrev-select-buffers-function): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 37504
diff changeset
262 search for expansions. See the source of `dabbrev--select-buffers'
210efced5807 (dabbrev-select-buffers-function): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 37504
diff changeset
263 for an example.
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
264
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
265 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
266
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
267 (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
268 "*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
269 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
270 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
271 `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
272
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
273 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
274 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
275 `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
276
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
277 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
278 :type 'function
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
279 :group 'dabbrev)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
280
17411
f0ff96a35eb8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17263
diff changeset
281 (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
282 "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
283 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
284 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
285 this list.")
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
286
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
287 ;;----------------------------------------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
288 ;; Internal variables
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
289 ;;----------------------------------------------------------------
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
290
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
291 ;; 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
292 (defvar dabbrev--last-obarray nil)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
293
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
294 ;; 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
295 (defvar dabbrev--last-table nil)
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 ;; 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
298 (defvar dabbrev--last-abbreviation nil)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
299
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
300 ;; Location last abbreviation began
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
301 (defvar dabbrev--last-abbrev-location nil)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
303 ;; Direction of last dabbrevs search
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
304 (defvar dabbrev--last-direction 0)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
305
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
306 ;; Last expansion of an abbreviation.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
307 (defvar dabbrev--last-expansion nil)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
308
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
309 ;; 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
310 (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
311
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
312 ;; 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
313 (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
314
38138
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
315 ;; The buffer we looked in last, not counting the current buffer.
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
316 (defvar dabbrev--last-buffer nil)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
317
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
318 ;; 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
319 (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
320
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
321 ;; 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
322 (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
323
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
324 ;; If non-nil, a function to use when copying successive words.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
325 ;; It should be `upcase' or `downcase'.
15834
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
326 (defvar dabbrev--last-case-pattern nil)
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
327
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
328 ;; 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
329 (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
330
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
331 ;; 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
332 (defvar dabbrev--abbrev-char-regexp nil)
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
334 ;;----------------------------------------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
335 ;; Macros
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
336 ;;----------------------------------------------------------------
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
337
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
338 ;;; 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
339 (defsubst dabbrev--minibuffer-origin ()
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
340 (car (cdr (buffer-list))))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
341
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
342 ;; 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
343 ;; 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
344 ;; 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
345 ;; if CONDITION evaluates non-nil.
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
346 (defmacro dabbrev-filter-elements (element list condition)
26459
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
347 `(let (dabbrev-result dabbrev-tail ,element)
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
348 (setq dabbrev-tail ,list)
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
349 (while dabbrev-tail
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
350 (setq ,element (car dabbrev-tail))
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
351 (if ,condition
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
352 (setq dabbrev-result (cons ,element dabbrev-result)))
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
353 (setq dabbrev-tail (cdr dabbrev-tail)))
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
354 (nreverse dabbrev-result)))
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
355
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
356 ;;----------------------------------------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
357 ;; Exported functions
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
358 ;;----------------------------------------------------------------
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
359
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
360 ;;;###autoload
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
361 (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
362 ;;;??? Do we want this?
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
363 ;;;###autoload
10251
bf1c7dcc69db (esc-map): Delete excess closeparen.
Richard M. Stallman <rms@gnu.org>
parents: 10241
diff changeset
364 (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
365
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
366 ;;;###autoload
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
367 (defun dabbrev-completion (&optional arg)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
368 "Completion on current word.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
369 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
370 and presents suggestions for completion.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
371
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
372 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
373 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
374 completions.
ace1fffa8d96 (dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents: 10231
diff changeset
375
ace1fffa8d96 (dabbrev-completion): Now searches all buffers when given prefix arg 16.
Richard M. Stallman <rms@gnu.org>
parents: 10231
diff changeset
376 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
377 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
378
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
379 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
380 if there is a suitable one already."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
382 (interactive "*P")
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
383 (dabbrev--reset-global-variables)
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
384 (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
385 (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
386 (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
387 (abbrev (dabbrev--abbrev-at-point))
17711
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
388 (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
389 case-fold-search
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
390 dabbrev-case-fold-search)
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
391 (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
392 (string= abbrev (downcase abbrev)))))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
393 (my-obarray dabbrev--last-obarray)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
394 init)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
395 (save-excursion
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
396 (if (and (null arg)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
397 my-obarray
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
398 (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
399 (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
400 (eq dabbrev--last-completion-buffer
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
401 (dabbrev--minibuffer-origin))))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
402 dabbrev--last-abbreviation
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
403 (>= (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
404 (string= dabbrev--last-abbreviation
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
405 (substring abbrev 0
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
406 (length dabbrev--last-abbreviation)))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
407 (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
408 ;; 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
409 nil
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
410 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
411 ;; New abbreviation to expand.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
412 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
413 (setq dabbrev--last-abbreviation abbrev)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
414 ;; Find all expansion
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
415 (let ((completion-list
15751
022815791330 (dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents: 15652
diff changeset
416 (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
417 (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
418 ;; 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
419 (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
420 (or (> (length my-obarray) 0)
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
421 (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
422 abbrev
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
423 (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
424 (cond
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
425 ((or (not ignore-case-p)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
426 (not dabbrev-case-replace))
29077
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
427 (mapc (function (lambda (string)
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
428 (intern string my-obarray)))
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
429 completion-list))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
430 ((string= abbrev (upcase abbrev))
29077
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
431 (mapc (function (lambda (string)
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
432 (intern (upcase string) my-obarray)))
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
433 completion-list))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
434 ((string= (substring abbrev 0 1)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
435 (upcase (substring abbrev 0 1)))
29077
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
436 (mapc (function (lambda (string)
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
437 (intern (capitalize string) my-obarray)))
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
438 completion-list))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
439 (t
29077
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
440 (mapc (function (lambda (string)
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
441 (intern (downcase string) my-obarray)))
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
442 completion-list)))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
443 (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
444 (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
445 ;; Find the longest common string.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
446 (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
447 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
448 ;; 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
449 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
450 (or (stringp init)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
451 (setq init abbrev))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
452 (cond
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
453 ;; * 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
454 ((and (not (string-equal init ""))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
455 (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
456 (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
457 (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
458 (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
459 (message "The only possible completion"))
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
460 (dabbrev--substitute-expansion nil abbrev init nil))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
461 (t
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
462 ;; * 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
463 (message "Making completion list...")
40820
598a96e93a20 (dabbrev-completion): Use "*Completions*".
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38142
diff changeset
464 (with-output-to-temp-buffer "*Completions*"
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
465 (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
466 (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
467 (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
468 (message nil))))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
469
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
470 ;;;###autoload
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
471 (defun dabbrev-expand (arg)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
472 "Expand previous word \"dynamically\".
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
473
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
474 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
475 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
476 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
477 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
478 `dabbrev-friend-buffer-function'.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
479
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
480 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
481 possibility. A negative argument says search forward.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
482
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
483 If the cursor has not moved from the end of the previous expansion and
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
484 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
485 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
486
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
487 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
488 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
489
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
490 See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]."
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
491 (interactive "*P")
15834
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
492 (let (abbrev record-case-pattern
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
493 expansion old direction (orig-point (point)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
494 ;; abbrev -- the abbrev to expand
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
495 ;; expansion -- the expansion found (eventually) or nil until then
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
496 ;; old -- the text currently in the buffer
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
497 ;; (the abbrev, or the previously-made expansion)
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
498 (save-excursion
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
499 (if (and (null arg)
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
500 (markerp dabbrev--last-abbrev-location)
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
501 (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
502 (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
503 (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
504 (= dabbrev--last-abbrev-location
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
505 (point)))))
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
506 ;; Find a different expansion for the same abbrev as last time.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
507 (progn
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
508 (setq abbrev dabbrev--last-abbreviation)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
509 (setq old dabbrev--last-expansion)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
510 (setq direction dabbrev--last-direction))
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
511 ;; 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
512 ;; 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
513 (if (and (eq (preceding-char) ?\ )
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
514 (markerp dabbrev--last-abbrev-location)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
515 (marker-position dabbrev--last-abbrev-location)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
516 (= (point) (1+ dabbrev--last-abbrev-location)))
15834
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
517 (progn
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
518 ;; 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
519 (setq abbrev " ")
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
520 (save-excursion
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
521 (if dabbrev--last-buffer
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
522 (set-buffer dabbrev--last-buffer))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
523 ;; 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
524 (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
525 (and (eq dabbrev--last-direction 0)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
526 (< dabbrev--last-expansion-location (point))))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
527 (setq dabbrev--last-expansion-location
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
528 (+ dabbrev--last-expansion-location
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
529 (length dabbrev--last-expansion))))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
530 (goto-char dabbrev--last-expansion-location)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
531 ;; 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
532 ;; as our expansion this time.
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
533 (re-search-forward
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
534 (concat "\\(\\(" dabbrev--abbrev-char-regexp "\\)+\\)"))
17864
c662a8633943 (dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents: 17711
diff changeset
535 (setq expansion (buffer-substring-no-properties
c662a8633943 (dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents: 17711
diff changeset
536 dabbrev--last-expansion-location (point)))
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
537
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
538 ;; 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
539 (setq dabbrev--last-expansion-location (point)))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
540 ;; 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
541 ;; at the end of the expansion.
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
542 (setq dabbrev--last-direction -1))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
543
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
544 ;; 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
545 (dabbrev--reset-global-variables)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
546 (setq direction (if (null arg)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
547 (if dabbrev-backward-only 1 0)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
548 (prefix-numeric-value arg)))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
549 (setq abbrev (dabbrev--abbrev-at-point))
15834
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
550 (setq record-case-pattern t)
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
551 (setq old nil)))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
552
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
553 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
554 ;; Find the expansion
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
555 ;;--------------------------------
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
556 (or expansion
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
557 (setq expansion
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
558 (dabbrev--find-expansion abbrev direction
17711
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
559 (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
560 case-fold-search
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
561 dabbrev-case-fold-search)
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
562 (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
563 (string= abbrev (downcase abbrev))))))))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
564 (cond
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
565 ((not expansion)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
566 (dabbrev--reset-global-variables)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
567 (if old
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
568 (save-excursion
12724
c3cb2b06e05f (dabbrev-expand): Save previous point for undo.
Richard M. Stallman <rms@gnu.org>
parents: 12555
diff changeset
569 (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
570 ;; 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
571 (search-backward old)
d9c469af1ee0 (dabbrev-expand): When no more expansions,
Richard M. Stallman <rms@gnu.org>
parents: 12724
diff changeset
572 (insert abbrev)
d9c469af1ee0 (dabbrev-expand): When no more expansions,
Richard M. Stallman <rms@gnu.org>
parents: 12724
diff changeset
573 (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
574 (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
575 (if old " further" "") abbrev))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
576 (t
29294
5784ff2ff5df (dabbrev-expand): Don't display messages in the
Gerd Moellmann <gerd@gnu.org>
parents: 29077
diff changeset
577 (if (not (or (eq dabbrev--last-buffer dabbrev--last-buffer-found)
5784ff2ff5df (dabbrev-expand): Don't display messages in the
Gerd Moellmann <gerd@gnu.org>
parents: 29077
diff changeset
578 (minibuffer-window-active-p (selected-window))))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
579 (progn
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
580 (message "Expansion found in '%s'"
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
581 (buffer-name dabbrev--last-buffer))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
582 (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
583 (message nil))
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
584 (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
585 (null dabbrev--last-buffer))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
586 (numberp dabbrev--last-expansion-location)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
587 (and (> dabbrev--last-expansion-location (point))))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
588 (setq dabbrev--last-expansion-location
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
589 (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
590 ;; 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
591 (setq buffer-undo-list (cons orig-point buffer-undo-list))
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
592 (dabbrev--substitute-expansion old abbrev expansion
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
593 record-case-pattern)
15834
71ede15e1ca3 (dabbrev--last-case-pattern): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 15812
diff changeset
594
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
595 ;; Save state for re-expand.
26459
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
596 (setq dabbrev--last-expansion expansion)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
597 (setq dabbrev--last-abbreviation abbrev)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
598 (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
599
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
600 ;;----------------------------------------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
601 ;; Local functions
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
602 ;;----------------------------------------------------------------
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
603
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
604 ;;; 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
605 (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
606 (eq major-mode
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
607 (save-excursion
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
608 (set-buffer other-buffer)
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
609 major-mode)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
610
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
611 ;;; 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
612 ;;; all skip characters.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
613 (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
614 ;; Move backwards over abbrev chars
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
615 (save-match-data
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
616 (if (not (bobp))
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
617 (progn
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
618 (forward-char -1)
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
619 (while (and (looking-at dabbrev--abbrev-char-regexp)
43981
1b2a6ccacf7b (dabbrev--goto-start-of-abbrev): Put a limit on field-beginning search.
Richard M. Stallman <rms@gnu.org>
parents: 43076
diff changeset
620 (not (bobp))
1b2a6ccacf7b (dabbrev--goto-start-of-abbrev): Put a limit on field-beginning search.
Richard M. Stallman <rms@gnu.org>
parents: 43076
diff changeset
621 (not (= (point) (field-beginning (point) nil
1b2a6ccacf7b (dabbrev--goto-start-of-abbrev): Put a limit on field-beginning search.
Richard M. Stallman <rms@gnu.org>
parents: 43076
diff changeset
622 (1- (point))))))
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
623 (forward-char -1))
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
624 (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
625 (forward-char 1))))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
626 (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
627 (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
628 (forward-char 1)))))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
629
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
630 ;;; 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
631 (defun dabbrev--abbrev-at-point ()
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
632 ;; Check for error
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
633 (if (bobp)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
634 (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
635 ;; Return abbrev at point
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
636 (save-excursion
11976
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
637 ;; 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
638 (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
639 ;; 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
640 ;; 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
641 ;; 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
642 ;; 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
643 (save-match-data
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
644 (if (save-excursion
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
645 (forward-char -1)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
646 (not (looking-at (concat "\\("
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
647 (or dabbrev-abbrev-char-regexp
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
648 "\\sw\\|\\s_")
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
649 "\\)+"))))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
650 (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
651 "\\sw\\|\\s_")
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
652 nil t)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
653 (forward-char 1)
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
654 (error "No possible abbreviation preceding point"))))
e862c6697f39 (dabbrev--abbrev-at-point): If point is after
Karl Heuer <kwzh@gnu.org>
parents: 11820
diff changeset
655 ;; 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
656 (dabbrev--goto-start-of-abbrev)
17864
c662a8633943 (dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents: 17711
diff changeset
657 (buffer-substring-no-properties
c662a8633943 (dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents: 17711
diff changeset
658 dabbrev--last-abbrev-location (point))))
26459
1ef9d70dfb0f * dabbrev.el (dabbrev-filter-elements): Use the new backquote syntax.
Sam Steingold <sds@gnu.org>
parents: 23306
diff changeset
659
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
660 ;;; Initializes all global variables
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
661 (defun dabbrev--reset-global-variables ()
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
662 ;; 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
663 ;; must not be reset here.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
664 (setq dabbrev--last-table nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
665 dabbrev--last-abbreviation nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
666 dabbrev--last-abbrev-location nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
667 dabbrev--last-direction nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
668 dabbrev--last-expansion nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
669 dabbrev--last-expansion-location nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
670 dabbrev--friend-buffer-list nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
671 dabbrev--last-buffer nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
672 dabbrev--last-buffer-found nil
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
673 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
674 "\\sw\\|\\s_")
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
675 dabbrev--check-other-buffers dabbrev-check-other-buffers))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
676
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
677 (defun dabbrev--select-buffers ()
38138
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
678 "Return a list of other buffers to search for a possible abbrev.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
679 The current buffer is not included in the list.
37487
ed8e6a4af6ef (dabbrev--select-buffers): Add a doc string.
Eli Zaretskii <eliz@gnu.org>
parents: 35921
diff changeset
680
38138
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
681 This function makes a list of all the buffers returned by `buffer-list',
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
682 then discards buffers whose names match `dabbrev-ignored-buffer-names'
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
683 or `dabbrev-ignored-buffer-regexps'. It also discards buffers for which
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
684 `dabbrev-friend-buffer-function', if it is bound, returns nil when called
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
685 with the buffer as argument.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
686 It returns the list of the buffers that are not discarded."
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
687 (dabbrev-filter-elements
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
688 buffer (buffer-list)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
689 (and (not (eq (current-buffer) buffer))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
690 (not (dabbrev--ignore-buffer-p buffer))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
691 (boundp 'dabbrev-friend-buffer-function)
38142
121f029b6b4a (dabbrev--select-buffers): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 38138
diff changeset
692 (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
693
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
694 (defun dabbrev--try-find (abbrev reverse n ignore-case)
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
695 "Search for ABBREV, backwards if REVERSE, N times.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
696 If IGNORE-CASE is non-nil, ignore case while searching.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
697 Return the expansion found, and save the location of the start
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
698 of the expansion in `dabbrev--last-expansion-location'."
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
699 (save-excursion
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
700 (save-restriction
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
701 (widen)
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
702 (let ((expansion nil))
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
703 (and dabbrev--last-expansion-location
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
704 (goto-char dabbrev--last-expansion-location))
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
705 (let ((case-fold-search ignore-case)
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
706 (count n))
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
707 (while (and (> count 0)
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
708 (setq expansion (dabbrev--search abbrev
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
709 reverse
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
710 (and ignore-case
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
711 (if (eq dabbrev-case-distinction 'case-replace)
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
712 case-replace
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
713 dabbrev-case-distinction))
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
714 )))
11820
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
715 (setq count (1- count))))
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
716 (and expansion
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
717 (setq dabbrev--last-expansion-location (point)))
362251066737 (dabbrev-completion): Use mapcar, not mapc.
Richard M. Stallman <rms@gnu.org>
parents: 10251
diff changeset
718 expansion))))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
719
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
720 (defun dabbrev--find-all-expansions (abbrev ignore-case)
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
721 "Return a list of all possible expansions of ABBREV.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
722 If IGNORE-CASE is non-nil, accept matches which differ in case."
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
723 (let ((all-expansions nil)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
724 expansion)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
725 (save-excursion
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
726 (goto-char (point-min))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
727 (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
728 (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
729 all-expansions))
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 (defun dabbrev--scanning-message ()
38138
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
732 (unless (window-minibuffer-p (selected-window))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
733 (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
734
37504
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
735 (defun dabbrev--ignore-buffer-p (buffer)
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
736 "Return non-nil if BUFFER should be ignored by dabbrev."
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
737 (let ((bn (buffer-name buffer)))
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
738 (or (member bn dabbrev-ignored-buffer-names)
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
739 (let ((tail dabbrev-ignored-buffer-regexps)
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
740 (match nil))
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
741 (while (and tail (not match))
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
742 (setq match (string-match (car tail) bn)
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
743 tail (cdr tail)))
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
744 match))))
cf707ac71b73 (dabbrev--ignore-buffer-p): New function.
Miles Bader <miles@gnu.org>
parents: 37497
diff changeset
745
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
746 (defun dabbrev--find-expansion (abbrev direction ignore-case)
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
747 "Find one occurrence of ABBREV, and return the expansion.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
748 DIRECTION > 0 means look that many times backwards.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
749 DIRECTION < 0 means look that many times forward.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
750 DIRECTION = 0 means try both backward and forward.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
751 IGNORE-CASE non-nil means ignore case when searching.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
752 This sets `dabbrev--last-direction' to 1 or -1 according
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
753 to the direction in which the occurrence was actually found.
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49067
diff changeset
754 It sets `dabbrev--last-expansion-location' to the location
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
755 of the start of the occurrence."
38138
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
756 (save-excursion
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
757 ;; If we were scanning something other than the current buffer,
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
758 ;; continue scanning there.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
759 (when dabbrev--last-buffer
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
760 (set-buffer dabbrev--last-buffer)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
761 (dabbrev--scanning-message))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
762 (or
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
763 ;; ------------------------------------------
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
764 ;; Look backward in current buffer.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
765 ;; ------------------------------------------
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
766 (and (not dabbrev-search-these-buffers-only)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
767 (>= direction 0)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
768 (setq dabbrev--last-direction (min 1 direction))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
769 (dabbrev--try-find abbrev t
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
770 (max 1 direction)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
771 ignore-case))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
772 ;; ------------------------------------------
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
773 ;; Look forward in current buffer
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
774 ;; or whatever buffer we were last scanning.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
775 ;; ------------------------------------------
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
776 (and (or (not dabbrev-search-these-buffers-only)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
777 dabbrev--last-buffer)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
778 (<= direction 0)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
779 (setq dabbrev--last-direction -1)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
780 (dabbrev--try-find abbrev nil
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
781 (max 1 (- direction))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
782 ignore-case))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
783 ;; ------------------------------------------
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
784 ;; Look in other buffers.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
785 ;; Always start at (point-min) and look forward.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
786 ;; ------------------------------------------
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
787 (progn
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
788 (setq dabbrev--last-direction -1)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
789 (unless dabbrev--last-buffer
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
790 ;; If we have just now begun to search other buffers,
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
791 ;; determine which other buffers we should check.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
792 ;; Put that list in dabbrev--friend-buffer-list.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
793 (or dabbrev--friend-buffer-list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
794 (setq dabbrev--friend-buffer-list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
795 (dabbrev--make-friend-buffer-list))))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
796 ;; Walk through the buffers till we find a match.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
797 (let (expansion)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
798 (while (and (not expansion) dabbrev--friend-buffer-list)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
799 (setq dabbrev--last-buffer
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
800 (car dabbrev--friend-buffer-list))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
801 (setq dabbrev--friend-buffer-list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
802 (cdr dabbrev--friend-buffer-list))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
803 (set-buffer dabbrev--last-buffer)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
804 (dabbrev--scanning-message)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
805 (setq dabbrev--last-expansion-location (point-min))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
806 (setq expansion (dabbrev--try-find abbrev nil 1 ignore-case)))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
807 expansion)))))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
808
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
809 ;; Compute the list of buffers to scan.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
810 ;; If dabbrev-search-these-buffers-only, then the current buffer
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
811 ;; is included in this list if it should be searched.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
812 ;; Otherwise, the current buffer is searched first specially.,
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
813 ;; and it is not included in this list.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
814 (defun dabbrev--make-friend-buffer-list ()
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
815 (let ((list (mapcar (function get-buffer)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
816 dabbrev-search-these-buffers-only)))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
817 (when (and (null dabbrev-search-these-buffers-only)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
818 dabbrev--check-other-buffers
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
819 (or (eq dabbrev--check-other-buffers t)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
820 (setq dabbrev--check-other-buffers
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
821 (y-or-n-p "Scan other buffers also? "))))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
822 (setq list (funcall dabbrev-select-buffers-function))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
823 ;; If dabbrev-check-all-buffers, tack on all the other
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
824 ;; buffers at the end of the list, except those which are
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
825 ;; specifically to be ignored.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
826 (if dabbrev-check-all-buffers
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
827 (setq list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
828 (append list
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
829 (dabbrev-filter-elements
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
830 buffer (buffer-list)
38138
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
831 (and (not (memq buffer list))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
832 (not (dabbrev--ignore-buffer-p buffer)))))))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
833 ;; Remove the current buffer.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
834 (setq list (delq (current-buffer) list)))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
835 ;; Move buffers in the list that are visible on the screen
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
836 ;; to the front of the list, but don't add anything to the list.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
837 (if list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
838 (walk-windows (lambda (w)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
839 (unless (eq w (selected-window))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
840 (if (memq (window-buffer w) list)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
841 (setq list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
842 (cons (window-buffer w)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
843 (delq (window-buffer w)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
844 list))))))))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
845 ;; In a minibuffer, search the buffer it was activated from,
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
846 ;; first after the minibuffer itself. Unless we aren't supposed
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
847 ;; to search the current buffer either.
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
848 (if (and (window-minibuffer-p (selected-window))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
849 (not dabbrev-search-these-buffers-only))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
850 (setq list
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
851 (cons (dabbrev--minibuffer-origin)
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
852 (delq (dabbrev--minibuffer-origin) list))))
a7bf2382c0d7 (dabbrev--make-friend-buffer-list): New function,
Richard M. Stallman <rms@gnu.org>
parents: 37573
diff changeset
853 list))
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
854
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
855 (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
856 (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
857 (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
858 (replace-match string fixedcase literal)))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
859
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
860 ;;;----------------------------------------------------------------
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
861 (defun dabbrev--substitute-expansion (old abbrev expansion record-case-pattern)
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
862 "Replace OLD with EXPANSION in the buffer.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
863 OLD is text currently in the buffer, perhaps the abbreviation
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
864 or perhaps another expansion that was tried previously.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
865 ABBREV is the abbreviation we are expanding.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
866 It is \" \" if we are copying subsequent words.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
867 EXPANSION is the expansion substring to be used this time.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
868 RECORD-CASE-PATTERN, if non-nil, means set `dabbrev--last-case-pattern'
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
869 to record whether we upcased the expansion, downcased it, or did neither."
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
870 ;;(undo-boundary)
17711
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
871 (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
872 case-fold-search
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
873 dabbrev-case-fold-search)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
874 (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
875 (string= abbrev (downcase abbrev)))
17711
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
876 (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
877 case-replace
3484851d83b9 (dabbrev-case-replace, dabbrev-case-fold-search):
Richard M. Stallman <rms@gnu.org>
parents: 17411
diff changeset
878 dabbrev-case-replace))))
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
879
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
880 ;; If we upcased or downcased the original expansion,
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
881 ;; do likewise for the subsequent words when we copy them.
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
882 ;; Don't do any of the usual case processing, though.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
883 (when (equal abbrev " ")
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
884 (if dabbrev--last-case-pattern
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
885 (setq expansion
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
886 (funcall dabbrev--last-case-pattern expansion)))
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
887 (setq use-case-replace nil))
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
888
17263
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
889 ;; If the expansion has mixed case
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
890 ;; and it is not simply a capitalized word,
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
891 ;; or if the abbrev has mixed case,
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
892 ;; 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
893 ;; 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
894 ;; copy the expansion's case
022815791330 (dabbrev--search): Don't downcase the result here.
Richard M. Stallman <rms@gnu.org>
parents: 15652
diff changeset
895 ;; instead of downcasing all the rest.
35636
4eb554667665 (dabbrev--substitute-expansion):
Gerd Moellmann <gerd@gnu.org>
parents: 34596
diff changeset
896 ;; Treat a one-capital-letter abbrev as "not all upper case",
4eb554667665 (dabbrev--substitute-expansion):
Gerd Moellmann <gerd@gnu.org>
parents: 34596
diff changeset
897 ;; so as to force preservation of the expansion's pattern
4eb554667665 (dabbrev--substitute-expansion):
Gerd Moellmann <gerd@gnu.org>
parents: 34596
diff changeset
898 ;; if the expansion starts with a capital letter.
17263
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
899 (let ((expansion-rest (substring expansion 1)))
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
900 (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
901 (string= expansion-rest (upcase expansion-rest)))
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
902 (or (string= abbrev (downcase abbrev))
35636
4eb554667665 (dabbrev--substitute-expansion):
Gerd Moellmann <gerd@gnu.org>
parents: 34596
diff changeset
903 (and (string= abbrev (upcase abbrev))
4eb554667665 (dabbrev--substitute-expansion):
Gerd Moellmann <gerd@gnu.org>
parents: 34596
diff changeset
904 (> (length abbrev) 1)))))
17263
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
905 (string= abbrev
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
906 (substring expansion 0 (length abbrev))))
b712c50d2c84 (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 15834
diff changeset
907 (setq use-case-replace nil)))
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
908
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
909 ;; If the abbrev and the expansion are both all-lower-case
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
910 ;; then don't do any conversion. The conversion would be a no-op
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
911 ;; for this replacement, but it would carry forward to subsequent words.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
912 ;; The goal of this is to preven that carrying forward.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
913 (if (and (string= expansion (downcase expansion))
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
914 (string= abbrev (downcase abbrev)))
15812
63076f19cbc5 (dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents: 15789
diff changeset
915 (setq use-case-replace nil))
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
916
15812
63076f19cbc5 (dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents: 15789
diff changeset
917 (if use-case-replace
63076f19cbc5 (dabbrev-expand): When snarfing consecutive words,
Richard M. Stallman <rms@gnu.org>
parents: 15789
diff changeset
918 (setq expansion (downcase expansion)))
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
919
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
920 ;; In case we insert subsequent words,
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
921 ;; record if we upcased or downcased the first word,
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
922 ;; in order to do likewise for subsequent words.
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
923 (and record-case-pattern
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49067
diff changeset
924 (setq dabbrev--last-case-pattern
34596
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
925 (and use-case-replace
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
926 (cond ((equal abbrev (upcase abbrev)) 'upcase)
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
927 ((equal abbrev (downcase abbrev)) 'downcase)))))
51c08e149a23 (dabbrev--last-case-pattern): Value is now
Gerd Moellmann <gerd@gnu.org>
parents: 30002
diff changeset
928
49067
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
929 ;; Convert whitespace to single spaces.
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
930 (if dabbrev--eliminate-newlines
49067
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
931 ;; Start searching at end of ABBREV so that any whitespace
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
932 ;; carried over from the existing text is not changed.
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
933 (let ((pos (length abbrev)))
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
934 (while (string-match "[\n \t]+" expansion pos)
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
935 (setq pos (1+ (match-beginning 0)))
c0e98fdf377f (dabbrev--substitute-expansion):
Richard M. Stallman <rms@gnu.org>
parents: 46518
diff changeset
936 (setq expansion (replace-match " " nil nil expansion)))))
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
937
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
938 (if old
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
939 (save-excursion
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
940 (search-backward old))
21153
183817081a96 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 20604
diff changeset
941 ;;(set-match-data (list (point-marker) (point-marker)))
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
942 (search-backward abbrev)
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
943 (search-forward abbrev))
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
944
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
945 ;; 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
946 ;; 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
947 ;; 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
948 (dabbrev--safe-replace-match expansion
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
949 (not use-case-replace)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
950 t)))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
951
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
952
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
953 ;;;----------------------------------------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
954 ;;; Search function used by dabbrevs library.
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
955
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
956
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
957 (defun dabbrev--search (abbrev reverse ignore-case)
37497
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
958 "Search for something that could be used to expand ABBREV.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
959
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
960 Second arg, REVERSE, is t for reverse search, nil for forward.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
961 The variable `dabbrev-limit' controls the maximum search region size.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
962 Third argument IGNORE-CASE non-nil means treat case as insignificant while
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
963 looking for a match and when comparing with previous matches. Also if
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
964 that's non-nil and the match is found at the beginning of a sentence
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
965 and is in lower case except for the initial then it is converted to
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
966 all lower case for return.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
967
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
968 Table of expansions already seen is examined in buffer
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
969 `dabbrev--last-table' so that only distinct possibilities are found
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
970 by dabbrev-re-expand.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
971
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
972 Returns the expansion found, or nil if not found.
b04b5ca14967 Add doc strings for some functions.
Richard M. Stallman <rms@gnu.org>
parents: 37487
diff changeset
973 Leaves point at the location of the start of the expansion."
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
974 (save-match-data
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
975 (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
976 "\\(" dabbrev--abbrev-char-regexp "\\)"))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
977 (pattern2 (concat (regexp-quote abbrev)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
978 "\\(\\(" dabbrev--abbrev-char-regexp "\\)+\\)"))
46518
c6ca69a1c8d3 (dabbrev--search): Use inhibit-point-motion-hooks.
Richard M. Stallman <rms@gnu.org>
parents: 45292
diff changeset
979 ;; This makes it possible to find matches in minibuffer prompts
c6ca69a1c8d3 (dabbrev--search): Use inhibit-point-motion-hooks.
Richard M. Stallman <rms@gnu.org>
parents: 45292
diff changeset
980 ;; even when they are "inviolable".
c6ca69a1c8d3 (dabbrev--search): Use inhibit-point-motion-hooks.
Richard M. Stallman <rms@gnu.org>
parents: 45292
diff changeset
981 (inhibit-point-motion-hooks t)
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
982 found-string result)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
983 ;; Limited search.
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
984 (save-restriction
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
985 (and dabbrev-limit
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
986 (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
987 (+ (point)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
988 (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
989 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
990 ;; 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
991 ;;--------------------------------
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
992 (while (and (not found-string)
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
993 (if reverse
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
994 (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
995 (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
996 (goto-char (match-beginning 0))
a2a2aa391773 (dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents: 11976
diff changeset
997 ;; 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
998 ;; 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
999 (dabbrev--goto-start-of-abbrev)
a2a2aa391773 (dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents: 11976
diff changeset
1000
a2a2aa391773 (dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents: 11976
diff changeset
1001 (if (not (looking-at pattern1))
a2a2aa391773 (dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents: 11976
diff changeset
1002 nil
a2a2aa391773 (dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents: 11976
diff changeset
1003 ;; 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
1004 (re-search-forward pattern2)
17864
c662a8633943 (dabbrev-expand, dabbrev--abbrev-at-point)
Richard M. Stallman <rms@gnu.org>
parents: 17711
diff changeset
1005 (setq found-string (buffer-substring-no-properties
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1006 (match-beginning 0) (match-end 0)))
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1007 (setq result found-string)
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
1008 (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
1009 ;; 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
1010 (if (dabbrev-filter-elements
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
1011 table-string dabbrev--last-table
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
1012 (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
1013 (setq found-string nil)))
a2a2aa391773 (dabbrev--search): Don't let spurious match in middle
Karl Heuer <kwzh@gnu.org>
parents: 11976
diff changeset
1014 ;; Prepare to continue searching.
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
1015 (if reverse
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
1016 (goto-char (match-beginning 0))
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
1017 (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
1018 ;; If we found something, use it.
45292
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1019 (when found-string
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1020 ;; Put it into `dabbrev--last-table'
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1021 ;; and return it (either downcased, or as is).
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1022 (setq dabbrev--last-table
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1023 (cons found-string dabbrev--last-table))
e3ba76f78075 (dabbrev-case-distinction): New option.
Richard M. Stallman <rms@gnu.org>
parents: 43981
diff changeset
1024 result)))))
267
d83efd759350 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1025
29077
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
1026 (dolist (mess '("^No dynamic expansion for .* found$"
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
1027 "^No further dynamic expansion for .* found$"
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
1028 "^No possible abbreviation preceding point$"))
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
1029 (add-to-list 'debug-ignored-errors mess))
07f205e3af83 Add debug-ignored-errors.
Dave Love <fx@gnu.org>
parents: 28486
diff changeset
1030
10230
7396503653cf Complete rewrite by Lars.Lindberg@sypro.cap.se.
Richard M. Stallman <rms@gnu.org>
parents: 5307
diff changeset
1031 (provide 'dabbrev)
10231
e88ff4b30786 Don't require cl, picture, or reporter.
Richard M. Stallman <rms@gnu.org>
parents: 10230
diff changeset
1032
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
1033 ;;; dabbrev.el ends here