annotate lisp/hippie-exp.el @ 60428:2e103c7354f7

(Glossary): Rename "Balance Parentheses" to "Balancing...". Add "Byte Compilation". Correct "Copyleft". New xref in "Customization". Clarify "Current Line", "Echoing", "Fringe", "Frame", "Speedbar". Add "Graphical Terminal" "Keybinding", "Margin", "Window System". Rename "Registers" to "Register". Replace "Selecting" with "Selected Frame", "Selected Window", and "Selecting a Buffer".
author Richard M. Stallman <rms@gnu.org>
date Sun, 06 Mar 2005 17:24:24 +0000
parents 695cf19ef79e
children 863e75f2063d 375f2633d815
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 30645
diff changeset
1 ;;; hippie-exp.el --- expand text trying various ways to find its expansion
2230
6314334d7c2b Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1737
diff changeset
2
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13225
diff changeset
3 ;; Copyright (C) 1992 Free Software Foundation, Inc.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13225
diff changeset
4
2230
6314334d7c2b Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1737
diff changeset
5 ;; Author: Anders Holst <aho@sans.kth.se>
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
6 ;; Last change: 3 March 1998
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
7 ;; Version: 1.6
22250
a77d473867b8 *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21131
diff changeset
8 ;; Keywords: abbrev convenience
2230
6314334d7c2b Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1737
diff changeset
9
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; any later version.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13225
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13225
diff changeset
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13225
diff changeset
25 ;; Boston, MA 02111-1307, USA.
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
2233
fb0ed5a1d0f3 Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2230
diff changeset
27 ;;; Commentary:
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13225
diff changeset
28
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;; `hippie-expand' is a single function for a lot of different kinds
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; of completions and expansions. Called repeatedly it tries all
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
31 ;; possible completions in succession.
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; Which kinds of completions to try, and in which order, is
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;; determined by the contents of `hippie-expand-try-functions-list'.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;; Much customization of `hippie-expand' can be made by changing the
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; order of, removing, or inserting new functions in this list.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; Given a positive numeric argument, `hippie-expand' jumps directly
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;; ARG functions forward in this list. Given some other argument
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; (a negative argument or just Ctrl-U) it undoes the tried
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; completion.
5296
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
40 ;;
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;; If the variable `hippie-expand-verbose' is non-nil, `hippie-expand'
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;; outputs in a message which try-function in the list that is used
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;; currently (ie. was used currently and will be tried first the next
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;; time).
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
45 ;; The variable `hippie-expand-max-buffers' determines in how many
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
46 ;; buffers, apart from the current, to search for expansions in. It
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
47 ;; is used by the try-functions named "-all-buffers".
5296
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
48 ;; The variable `hippie-expand-ignore-buffers' is a list of regexps
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
49 ;; matching buffer names (as strings) or major modes (as atoms) of
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
50 ;; buffers that should not be searched by the try-functions named
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
51 ;; "-all-buffers".
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
52 ;; If set, the variable `hippie-expand-only-buffers' does the opposite
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
53 ;; of `hippie-expand-ignore-buffers', in that the search is restricted
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
54 ;; to only the kind of buffers listed.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
55 ;; If the variable `hippie-expand-no-restriction' is non-nil, narrowed
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
56 ;; buffers are widened before they are searched.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
57 ;; The variable `hippie-expand-dabbrev-skip-space' controls whether
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
58 ;; trailing spaces will be included in the abbreviation to search for,
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
59 ;; which then gives the same behavior as the original `dabbrev-expand'.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
60 ;; The variable `hippie-expand-dabbrev-as-symbol' controls whether
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
61 ;; characters of syntax '_' is considered part of the words to expand
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
62 ;; dynamically.
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 ;; See also the macro `make-hippie-expand-function' below.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
64 ;;
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 ;; A short description of the current try-functions in this file:
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 ;; `try-complete-file-name' : very convenient to have in any buffer,
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 ;; and not just in the minibuffer or (some) shell-mode. It goes
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 ;; through all possible completions instead of just completing as
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 ;; much as is unique.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 ;; `try-complete-file-name-partially' : To insert in the list just
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ;; before `try-complete-file-name' for those who want first to get
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 ;; a file name completed only as many characters as is unique.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 ;; `try-expand-all-abbrevs' : can be removed if you don't use abbrevs.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 ;; Otherwise it looks through all abbrev-tables, starting with
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
75 ;; the local followed by the global.
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
76 ;; `try-expand-line' : Searches the buffer for an entire line that
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
77 ;; begins exactly as the current line. Convenient sometimes, for
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78 ;; example as a substitute for (or complement to) the history
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
79 ;; list in shell-like buffers. At other times, only confusing.
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 ;; `try-expand-line-all-buffers' : Like `try-expand-line' but searches
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 ;; in all buffers (except the current). (This may be a little
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
82 ;; slow, don't use it unless you are really fond of `hippie-expand'.)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
83 ;; `try-expand-list' : Tries to expand the text back to the nearest
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
84 ;; open delimiter, to a whole list from the buffer. Convenient for
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
85 ;; example when writing lisp or TeX.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
86 ;; `try-expand-list-all-buffers' : Like `try-expand-list' but searches
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
87 ;; in all buffers (except the current).
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 ;; `try-expand-dabbrev' : works exactly as dabbrev-expand (but of
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 ;; course in a way compatible with the other try-functions).
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 ;; `try-expand-dabbrev-all-buffers' : perhaps the most useful of them,
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 ;; like `dabbrev-expand' but searches all Emacs buffers (except the
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 ;; current) for matching words. (No, I don't find this one
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
93 ;; particularly slow.)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
94 ;; `try-expand-dabbrev-visible': Searches the currently visible parts of
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
95 ;; all windows. Can be put before `try-expand-dabbrev-all-buffers' to
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
96 ;; first try the expansions you can see.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
97 ;; `try-expand-dabbrev-from-kill': Searches the kill ring for a suitable
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
98 ;; completion of the word. Good to have, just in case the word was not
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
99 ;; found elsewhere.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
100 ;; `try-expand-whole-kill' : Tries to complete text with a whole entry
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
101 ;; from the kill ring. May be good if you don't know how far up in
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
102 ;; the kill-ring the required entry is, and don't want to mess with
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
103 ;; "Choose Next Paste".
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 ;; `try-complete-lisp-symbol' : like `lisp-complete-symbol', but goes
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 ;; through all possibilities instead of completing what is unique.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 ;; Might be tedious (usually a lot of possible completions) and
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 ;; since its function is much like `lisp-complete-symbol', which
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 ;; already has a key of its own, you might want to remove this.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 ;; `try-complete-lisp-symbol-partially' : To insert in the list just
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 ;; before `try-complete-lisp-symbol' for those who first want to get
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
111 ;; completion of what is unique in the name.
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
112 ;;
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
113 ;; Not all of the above functions are by default in
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
114 ;; `hippie-expand-try-functions-list'. This variable is better set
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
115 ;; in ".emacs" to make `hippie-expand' behave maximally convenient
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
116 ;; according to personal taste. Also, instead of loading the
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
117 ;; variable with all kinds of try-functions above, it might be an
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
118 ;; idea to use `make-hippie-expand-function' to construct different
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
119 ;; `hippie-expand'-like functions, with different try-lists and bound
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
120 ;; to different keys. It is also possible to make
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
121 ;; `hippie-expand-try-functions-list' a buffer local variable, and
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
122 ;; let it depend on the mode (by setting it in the mode-hooks).
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 ;;
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 ;; To write new try-functions, consider the following:
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 ;; Each try-function takes one argument OLD which is nil the first
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 ;; time the function is called and true in succeeding calls for the
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 ;; same string to complete. The first time the function has to
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128 ;; extract the string before point to complete, and substitute the
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129 ;; first completion alternative for it. On following calls it has to
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 ;; substitute the next possible completion for the last tried string.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 ;; The try-function is to return t as long as it finds new
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 ;; possible completions. When there are no more alternatives it has
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 ;; to restore the text before point to its original contents, and
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 ;; return nil (don't beep or message or anything).
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 ;; The try-function can (should) use the following functions:
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 ;; `he-init-string' : Initializes the text to substitute to the
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 ;; contents of the region BEGIN to END. Also sets the variable
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 ;; `he-search-string' to the text to expand.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 ;; `he-substitute-string' : substitutes STR into the region
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 ;; initialized with `he-init-string'. (An optional second argument
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 ;; TRANS-CASE non-nil, means transfer of case from the abbreviation
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 ;; to the expansion is ok if that is enabled in the buffer.)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 ;; `he-reset-string' : Resets the initialized region to its original
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144 ;; contents.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145 ;; There is also a variable: `he-tried-table' which is meant to contain
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
146 ;; all tried expansions so far. The try-function can check this
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 ;; variable to see whether an expansion has already been tried
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
148 ;; (hint: `he-string-member').
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149 ;;
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
150 ;; Known bugs
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 ;;
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152 ;; It may happen that some completion suggestion occurs twice, in
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
153 ;; spite of the use of `he-tried-table' to prevent that. This is
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 ;; because different try-functions may try to complete different
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 ;; lengths of text, and thus put different amounts of the
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
156 ;; text in `he-tried-table'. Anyway this seems to occur seldom enough
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
157 ;; not to be too disturbing. Also it should NOT be possible for the
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 ;; opposite situation to occur, that `hippie-expand' misses some
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 ;; suggestion because it thinks it has already tried it.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 ;;
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
161 ;; Acknowledgement
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 ;;
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 ;; I want to thank Mikael Djurfeldt in discussions with whom the idea
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 ;; of this function took form.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 ;; I am also grateful to all those who have given me suggestions on
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
166 ;; how to improve it, and all those who helped to find and remove bugs.
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 ;;
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168
2233
fb0ed5a1d0f3 Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2230
diff changeset
169 ;;; Code:
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170
26599
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
171 (eval-when-compile (require 'comint))
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
172
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
173 (defgroup hippie-expand nil
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
174 "Expand text trying various ways to find its expansion."
26599
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
175 :link '(custom-manual "(autotype)Hippie Expand")
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
176 :link '(emacs-commentary-link "hippie-exp")
22250
a77d473867b8 *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21131
diff changeset
177 :group 'abbrev
a77d473867b8 *** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents: 21131
diff changeset
178 :group 'convenience)
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
179
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 (defvar he-num -1)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
182 (defvar he-string-beg (make-marker))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
184 (defvar he-string-end (make-marker))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
185
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
186 (defvar he-search-string ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
188 (defvar he-expand-list ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
190 (defvar he-tried-table ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
192 (defvar he-search-loc (make-marker))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
194 (defvar he-search-loc2 ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
195
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196 (defvar he-search-bw ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 (defvar he-search-bufs ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
199
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
200 (defvar he-searched-n-bufs ())
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
201
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
202 (defvar he-search-window ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
203
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
204 ;;;###autoload
26599
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
205 (defcustom hippie-expand-try-functions-list
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
206 '(try-complete-file-name-partially
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
207 try-complete-file-name
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
208 try-expand-all-abbrevs
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
209 try-expand-list
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
210 try-expand-line
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
211 try-expand-dabbrev
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
212 try-expand-dabbrev-all-buffers
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
213 try-expand-dabbrev-from-kill
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
214 try-complete-lisp-symbol-partially
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
215 try-complete-lisp-symbol)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
216 "The list of expansion functions tried in order by `hippie-expand'.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
217 To change the behavior of `hippie-expand', remove, change the order of,
26599
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
218 or insert functions in this list."
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
219 :type '(repeat function)
e10a1d0deb4b Require comint when compiling.
Dave Love <fx@gnu.org>
parents: 26449
diff changeset
220 :group 'hippie-expand)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
221
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
222 ;;;###autoload
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
223 (defcustom hippie-expand-verbose t
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
224 "*Non-nil makes `hippie-expand' output which function it is trying."
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
225 :type 'boolean
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
226 :group 'hippie-expand)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
228 ;;;###autoload
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
229 (defcustom hippie-expand-dabbrev-skip-space nil
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
230 "*Non-nil means tolerate trailing spaces in the abbreviation to expand."
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
231 :group 'hippie-expand
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
232 :type 'boolean)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
233
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
234 ;;;###autoload
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
235 (defcustom hippie-expand-dabbrev-as-symbol t
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
236 "*Non-nil means expand as symbols, i.e. syntax `_' is considered a letter."
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
237 :group 'hippie-expand
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
238 :type 'boolean)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
239
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
240 ;;;###autoload
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
241 (defcustom hippie-expand-no-restriction t
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
242 "*Non-nil means that narrowed buffers are widened during search."
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
243 :group 'hippie-expand
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
244 :type 'boolean)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
245
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
246 ;;;###autoload
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
247 (defcustom hippie-expand-max-buffers ()
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
248 "*The maximum number of buffers (apart from the current) searched.
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
249 If nil, all buffers are searched."
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
250 :type '(choice (const :tag "All" nil)
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
251 integer)
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
252 :group 'hippie-expand)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
253
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
254 ;;;###autoload
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
255 (defcustom hippie-expand-ignore-buffers '("^ \\*.*\\*$" dired-mode)
5296
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
256 "*A list specifying which buffers not to search (if not current).
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
257 Can contain both regexps matching buffer names (as strings) and major modes
17634
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
258 \(as atoms)"
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
259 :type '(repeat (choice regexp (symbol :tag "Major Mode")))
247c2a11843d Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16590
diff changeset
260 :group 'hippie-expand)
5296
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
261
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
262 ;;;###autoload
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
263 (defcustom hippie-expand-only-buffers ()
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
264 "*A list specifying the only buffers to search (in addition to current).
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
265 Can contain both regexps matching buffer names (as strings) and major modes
42205
7308bbc423d5 Doc fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 38436
diff changeset
266 \(as atoms). If non-nil, this variable overrides the variable
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
267 `hippie-expand-ignore-buffers'."
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
268 :type '(repeat (choice regexp (symbol :tag "Major Mode")))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
269 :group 'hippie-expand)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
270
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
271 ;;;###autoload
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
272 (defun hippie-expand (arg)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
273 "Try to expand text before point, using multiple methods.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
274 The expansion functions in `hippie-expand-try-functions-list' are
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
275 tried in order, until a possible expansion is found. Repeated
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
276 application of `hippie-expand' inserts successively possible
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
277 expansions.
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
278 With a positive numeric argument, jumps directly to the ARG next
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
279 function in this list. With a negative argument or just \\[universal-argument],
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
280 undoes the expansion."
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281 (interactive "P")
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
282 (if (or (not arg)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 (and (integerp arg) (> arg 0)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284 (let ((first (or (= he-num -1)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 (not (equal this-command last-command)))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286 (if first
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
287 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288 (setq he-num -1)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
289 (setq he-tried-table nil)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
290 (if arg
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
291 (if (not first) (he-reset-string))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
292 (setq arg 0))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 (let ((i (max (+ he-num arg) 0)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
294 (while (not (or (>= i (length hippie-expand-try-functions-list))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
295 (apply (nth i hippie-expand-try-functions-list)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 (list (= he-num i)))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297 (setq i (1+ i)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 (setq he-num i))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 (if (>= he-num (length hippie-expand-try-functions-list))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 (setq he-num -1)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 (if first
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 (message "No expansion found")
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 (message "No further expansions found"))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 (ding))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
306 (if (and hippie-expand-verbose
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
307 (not (window-minibuffer-p (selected-window))))
14317
594c4676b8c6 (hippie-expand): Pass proper format string to message.
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
308 (message "Using %s"
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
309 (nth he-num hippie-expand-try-functions-list)))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
310 (if (and (>= he-num 0)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
311 (eq (marker-buffer he-string-beg) (current-buffer)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313 (setq he-num -1)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 (he-reset-string)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
315 (if (and hippie-expand-verbose
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
316 (not (window-minibuffer-p (selected-window))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
317 (message "Undoing expansions"))))))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
318
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 ;; Initializes the region to expand (to between BEG and END).
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 (defun he-init-string (beg end)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
321 (set-marker he-string-beg beg)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
322 (set-marker he-string-end end)
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
323 (setq he-search-string (buffer-substring-no-properties beg end)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 ;; Resets the expanded region to its original contents.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 (defun he-reset-string ()
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
327 (let ((newpos (point-marker)))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
328 (goto-char he-string-beg)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
329 (insert he-search-string)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
330 (delete-region (point) he-string-end)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
331 (goto-char newpos)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 ;; Substitutes an expansion STR into the correct region (the region
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
334 ;; initialized with `he-init-string').
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335 ;; An optional argument TRANS-CASE means that it is ok to transfer case
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336 ;; from the abbreviation to the expansion if that is possible, and is
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
337 ;; enabled in the buffer.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338 (defun he-substitute-string (str &optional trans-case)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 (let ((trans-case (and trans-case
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 case-replace
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
341 case-fold-search))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
342 (newpos (point-marker))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
343 (subst ()))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 (goto-char he-string-beg)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
345 (setq subst (if trans-case (he-transfer-case he-search-string str) str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
346 (setq he-tried-table (cons subst he-tried-table))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
347 (insert subst)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
348 (delete-region (point) he-string-end)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
349 (goto-char newpos)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
350
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
351 (defun he-capitalize-first (str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
352 (save-match-data
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
353 (if (string-match "\\Sw*\\(\\sw\\).*" str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
354 (let ((res (downcase str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
355 (no (match-beginning 1)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
356 (aset res no (upcase (aref str no)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
357 res)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
358 str)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 (defun he-ordinary-case-p (str)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361 (or (string= str (downcase str))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
362 (string= str (upcase str))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
363 (string= str (capitalize str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
364 (string= str (he-capitalize-first str))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
366 (defun he-transfer-case (from-str to-str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
367 (cond ((string= from-str (substring to-str 0 (min (length from-str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
368 (length to-str))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
369 to-str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
370 ((not (he-ordinary-case-p to-str))
13225
76ce98050470 (he-transfer-case): Fix typo in prev change.
Richard M. Stallman <rms@gnu.org>
parents: 13207
diff changeset
371 to-str)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
372 ((string= from-str (downcase from-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
373 (downcase to-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
374 ((string= from-str (upcase from-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
375 (upcase to-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
376 ((string= from-str (he-capitalize-first from-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
377 (he-capitalize-first to-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
378 ((string= from-str (capitalize from-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
379 (capitalize to-str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
380 (t
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
381 to-str)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
382
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 ;; Check if STR is a member of LST.
42205
7308bbc423d5 Doc fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 38436
diff changeset
385 ;; Transform to the final case if optional TRANS-CASE is non-nil.
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
386 (defun he-string-member (str lst &optional trans-case)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
387 (if str
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
388 (member (if (and trans-case
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
389 case-replace
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
390 case-fold-search)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
391 (he-transfer-case he-search-string str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
392 str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
393 lst)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
395 ;; Check if current buffer matches any atom or regexp in LST.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
396 ;; Atoms are interpreted as major modes, strings as regexps mathing the name.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
397 (defun he-buffer-member (lst)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
398 (or (memq major-mode lst)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
399 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
400 (while (and lst
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
401 (or (not (stringp (car lst)))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
402 (not (string-match (car lst) (buffer-name)))))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
403 (setq lst (cdr lst)))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
404 lst)))
5296
81b21ef5290d (;; Keywords:): Changed to "abbrev".
Richard M. Stallman <rms@gnu.org>
parents: 4130
diff changeset
405
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 ;; For the real hippie-expand enthusiast: A macro that makes it
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 ;; possible to use many functions like hippie-expand, but with
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 ;; different try-functions-lists.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 ;; Usage is for example:
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 ;; (fset 'my-complete-file (make-hippie-expand-function
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 ;; '(try-complete-file-name-partially
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412 ;; try-complete-file-name)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 ;; (fset 'my-complete-line (make-hippie-expand-function
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 ;; '(try-expand-line
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 ;; try-expand-line-all-buffers)))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
416 ;;
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
417 ;;;###autoload
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 (defmacro make-hippie-expand-function (try-list &optional verbose)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 "Construct a function similar to `hippie-expand'.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420 Make it use the expansion functions in TRY-LIST. An optional second
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 argument VERBOSE non-nil makes the function verbose."
26449
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
422 `(function (lambda (arg)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
423 ,(concat
26449
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
424 "Try to expand text before point, using the following functions: \n"
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
425 (mapconcat 'prin1-to-string (eval try-list) ", "))
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
426 (interactive "P")
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
427 (let ((hippie-expand-try-functions-list ,try-list)
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
428 (hippie-expand-verbose ,verbose))
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
429 (hippie-expand arg)))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432 ;;; Here follows the try-functions and their requisites:
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
434
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435 (defun try-complete-file-name (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 "Try to complete text as a file name.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
438 for subsequent calls (for further possible completions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
439 string). It returns t if a new completion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440 (if (not old)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
441 (progn
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 (he-init-string (he-file-name-beg) (point))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
443 (let ((name-part (he-file-name-nondirectory he-search-string))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
444 (dir-part (expand-file-name (or (he-file-name-directory
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 he-search-string) ""))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 (if (not (he-string-member name-part he-tried-table))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 (setq he-tried-table (cons name-part he-tried-table)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448 (if (and (not (equal he-search-string ""))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
449 (he-file-directory-p dir-part))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
450 (setq he-expand-list (sort (file-name-all-completions
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 name-part
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452 dir-part)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
453 'string-lessp))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
454 (setq he-expand-list ())))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
455
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 (while (and he-expand-list
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 (he-string-member (car he-expand-list) he-tried-table))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458 (setq he-expand-list (cdr he-expand-list)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 (if (null he-expand-list)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
461 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 ())
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
463 (let ((filename (he-concat-directory-file-name
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
464 (he-file-name-directory he-search-string)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
465 (car he-expand-list))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (he-substitute-string filename)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
467 (setq he-tried-table (cons (car he-expand-list) (cdr he-tried-table)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 (setq he-expand-list (cdr he-expand-list))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 t)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 (defun try-complete-file-name-partially (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 "Try to complete text as a file name, as many characters as unique.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 The argument OLD has to be nil the first call of this function. It
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
474 returns t if a unique, possibly partial, completion is found, nil
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
476 (let ((expansion ()))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
477 (if (not old)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
478 (progn
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
479 (he-init-string (he-file-name-beg) (point))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
480 (let ((name-part (he-file-name-nondirectory he-search-string))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
481 (dir-part (expand-file-name (or (he-file-name-directory
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482 he-search-string) ""))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 (if (and (not (equal he-search-string ""))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
484 (he-file-directory-p dir-part))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
485 (setq expansion (file-name-completion name-part
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
486 dir-part)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487 (if (or (eq expansion t)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
488 (string= expansion name-part)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
489 (he-string-member expansion he-tried-table))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
490 (setq expansion ())))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
491
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
492 (if (not expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
494 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
495 ())
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
496 (let ((filename (he-concat-directory-file-name
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
497 (he-file-name-directory he-search-string)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
498 expansion)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
499 (he-substitute-string filename)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
500 (setq he-tried-table (cons expansion (cdr he-tried-table)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501 t))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
502
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
503 (defvar he-file-name-chars
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
504 (cond ((memq system-type '(vax-vms axp-vms))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
505 "-a-zA-Z0-9_/.,~^#$+=:\\[\\]")
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
506 ((memq system-type '(ms-dos windows-nt cygwin))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
507 "-a-zA-Z0-9_/.,~^#$+=:\\\\")
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
508 (t ;; More strange file formats ?
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
509 "-a-zA-Z0-9_/.,~^#$+="))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
510 "Characters that are considered part of the file name to expand.")
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
511
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
512 (defun he-file-name-beg ()
18030
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
513 (let ((op (point)))
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
514 (save-excursion
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
515 (skip-chars-backward he-file-name-chars)
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
516 (if (> (skip-syntax-backward "w") 0) ;; No words with non-file chars
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
517 op
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
518 (point)))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
519
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
520 ;; Thanks go to Richard Levitte <levitte@e.kth.se> who helped to make these
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
521 ;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
522 ;; helped to make it work on PC.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
523 (defun he-file-name-nondirectory (file)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
524 "Fix to make `file-name-nondirectory' work for hippie-expand under VMS."
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
525 (if (memq system-type '(axp-vms vax-vms))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
526 (let ((n (file-name-nondirectory file)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
527 (if (string-match "^\\(\\[.*\\)\\.\\([^\\.]*\\)$" n)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
528 (concat "[." (substring n (match-beginning 2) (match-end 2)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
529 n))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
530 (file-name-nondirectory file)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
531
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
532 (defun he-file-name-directory (file)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
533 "Fix to make `file-name-directory' work for hippie-expand under VMS."
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
534 (if (memq system-type '(axp-vms vax-vms))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
535 (let ((n (file-name-nondirectory file))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
536 (d (file-name-directory file)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
537 (if (string-match "^\\(\\[.*\\)\\.\\([^\\.]*\\)$" n)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
538 (concat d (substring n (match-beginning 1) (match-end 1)) "]")
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
539 d))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
540 (file-name-directory file)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
541
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
542 (defun he-file-directory-p (file)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
543 "Fix to make `file-directory-p' work for hippie-expand under VMS."
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
544 (if (memq system-type '(vax-vms axp-vms))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
545 (or (file-directory-p file)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
546 (file-directory-p (concat file "[000000]")))
15447
41bce2c4b1b8 (he-concat-directory-file-name): Directory part may be nil.
Richard M. Stallman <rms@gnu.org>
parents: 15330
diff changeset
547 (file-directory-p file)))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
548
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
549 (defun he-concat-directory-file-name (dir-part name-part)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
550 "Try to slam together two parts of a file specification, system dependently."
15447
41bce2c4b1b8 (he-concat-directory-file-name): Directory part may be nil.
Richard M. Stallman <rms@gnu.org>
parents: 15330
diff changeset
551 (cond ((null dir-part) name-part)
41bce2c4b1b8 (he-concat-directory-file-name): Directory part may be nil.
Richard M. Stallman <rms@gnu.org>
parents: 15330
diff changeset
552 ((memq system-type '(axp-vms vax-vms))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
553 (if (and (string= (substring dir-part -1) "]")
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
554 (string= (substring name-part 0 2) "[."))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
555 (concat (substring dir-part 0 -1) (substring name-part 1))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
556 (concat dir-part name-part)))
16590
a0cfcb9f8033 Use w32 instead of ms-windows for window-system symbol
Geoff Voelker <voelker@cs.washington.edu>
parents: 15447
diff changeset
557 ((memq system-type '(ms-dos w32))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
558 (if (and (string-match "\\\\" dir-part)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
559 (not (string-match "/" dir-part))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
560 (= (aref name-part (1- (length name-part))) ?/))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
561 (aset name-part (1- (length name-part)) ?\\))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
562 (concat dir-part name-part))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
563 (t
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
564 (concat dir-part name-part))))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
565
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566 (defun try-complete-lisp-symbol (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
567 "Try to complete word as an Emacs Lisp symbol.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
568 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
569 for subsequent calls (for further possible completions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
570 string). It returns t if a new completion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
571 (if (not old)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
572 (progn
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
573 (he-init-string (he-lisp-symbol-beg) (point))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 (if (not (he-string-member he-search-string he-tried-table))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575 (setq he-tried-table (cons he-search-string he-tried-table)))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
576 (setq he-expand-list
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
577 (and (not (equal he-search-string ""))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578 (sort (all-completions he-search-string obarray
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 (function (lambda (sym)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
580 (or (boundp sym)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
581 (fboundp sym)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
582 (symbol-plist sym)))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
583 'string-lessp)))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
584 (while (and he-expand-list
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
585 (he-string-member (car he-expand-list) he-tried-table))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
586 (setq he-expand-list (cdr he-expand-list)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
587 (if (null he-expand-list)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
588 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
589 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
590 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
591 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
592 (he-substitute-string (car he-expand-list))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
593 (setq he-expand-list (cdr he-expand-list))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
594 t)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
595
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
596 (defun try-complete-lisp-symbol-partially (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
597 "Try to complete as an Emacs Lisp symbol, as many characters as unique.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
598 The argument OLD has to be nil the first call of this function. It
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
599 returns t if a unique, possibly partial, completion is found, nil
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
600 otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
601 (let ((expansion ()))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
602 (if (not old)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
603 (progn
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
604 (he-init-string (he-lisp-symbol-beg) (point))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
605 (if (not (string= he-search-string ""))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
606 (setq expansion
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
607 (try-completion he-search-string obarray
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
608 (function (lambda (sym)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 (or (boundp sym)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
610 (fboundp sym)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
611 (symbol-plist sym)))))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
612 (if (or (eq expansion t)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
613 (string= expansion he-search-string)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
614 (he-string-member expansion he-tried-table))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
615 (setq expansion ()))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
616
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
617 (if (not expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
618 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
619 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
620 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
621 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
622 (he-substitute-string expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
623 t))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
624
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
625 (defun he-lisp-symbol-beg ()
18030
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
626 (save-excursion
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
627 (skip-syntax-backward "w_")
d3cc9cf799f8 (he-file-name-beg): Don't trigger on parts of
Karl Heuer <kwzh@gnu.org>
parents: 17634
diff changeset
628 (point)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
630 (defun try-expand-line (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
631 "Try to complete the current line to an entire line in the buffer.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
633 for subsequent calls (for further possible completions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
634 string). It returns t if a new completion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
635 (let ((expansion ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
636 (strip-prompt (and (get-buffer-process (current-buffer))
30645
4706d5e24141 (try-expand-line, try-expand-line-all-buffers): Only use comint-prompt-regexp
Miles Bader <miles@gnu.org>
parents: 26599
diff changeset
637 comint-use-prompt-regexp-instead-of-fields
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
638 comint-prompt-regexp)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
639 (if (not old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
640 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
641 (he-init-string (he-line-beg strip-prompt) (point))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
642 (set-marker he-search-loc he-string-beg)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
643 (setq he-search-bw t)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
644
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
645 (if (not (equal he-search-string ""))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
646 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
647 (save-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
648 (if hippie-expand-no-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
649 (widen))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
650 ;; Try looking backward unless inhibited.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
651 (if he-search-bw
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
652 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
653 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
654 (setq expansion (he-line-search he-search-string
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
655 strip-prompt t))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
656 (set-marker he-search-loc (point))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
657 (if (not expansion)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
658 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
659 (set-marker he-search-loc he-string-end)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
660 (setq he-search-bw ())))))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
661
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
662 (if (not expansion) ; Then look forward.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
663 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
664 (goto-char he-search-loc)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
665 (setq expansion (he-line-search he-search-string
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
666 strip-prompt nil))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
667 (set-marker he-search-loc (point)))))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 (if (not expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
671 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
672 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 (he-substitute-string expansion t)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 t))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 (defun try-expand-line-all-buffers (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 "Try to complete the current line, searching all other buffers.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 for subsequent calls (for further possible completions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
681 string). It returns t if a new completion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
682 (let ((expansion ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 (strip-prompt (and (get-buffer-process (current-buffer))
30645
4706d5e24141 (try-expand-line, try-expand-line-all-buffers): Only use comint-prompt-regexp
Miles Bader <miles@gnu.org>
parents: 26599
diff changeset
684 comint-use-prompt-regexp-instead-of-fields
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
685 comint-prompt-regexp))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
686 (buf (current-buffer))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
687 (orig-case-fold-search case-fold-search))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
688 (if (not old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
689 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
690 (he-init-string (he-line-beg strip-prompt) (point))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
691 (setq he-search-bufs (buffer-list))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
692 (setq he-searched-n-bufs 0)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
693 (set-marker he-search-loc 1 (car he-search-bufs))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
694
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
695 (if (not (equal he-search-string ""))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
696 (while (and he-search-bufs
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
697 (not expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
698 (or (not hippie-expand-max-buffers)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
699 (< he-searched-n-bufs hippie-expand-max-buffers)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700 (set-buffer (car he-search-bufs))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 (if (and (not (eq (current-buffer) buf))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
702 (if hippie-expand-only-buffers
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
703 (he-buffer-member hippie-expand-only-buffers)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
704 (not (he-buffer-member hippie-expand-ignore-buffers))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
705 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
706 (save-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
707 (if hippie-expand-no-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
708 (widen))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
709 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
710 (setq strip-prompt (and (get-buffer-process (current-buffer))
30645
4706d5e24141 (try-expand-line, try-expand-line-all-buffers): Only use comint-prompt-regexp
Miles Bader <miles@gnu.org>
parents: 26599
diff changeset
711 comint-use-prompt-regexp-instead-of-fields
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
712 comint-prompt-regexp))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
713 (setq expansion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
714 (let ((case-fold-search orig-case-fold-search))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
715 (he-line-search he-search-string
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
716 strip-prompt nil)))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
717 (set-marker he-search-loc (point))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
718 (if (not expansion)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
719 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
720 (setq he-search-bufs (cdr he-search-bufs))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
721 (setq he-searched-n-bufs (1+ he-searched-n-bufs))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
722 (set-marker he-search-loc 1 (car he-search-bufs))))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
723 (setq he-search-bufs (cdr he-search-bufs))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
724 (set-marker he-search-loc 1 (car he-search-bufs)))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
725
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 (set-buffer buf)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727 (if (not expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
729 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
731 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732 (he-substitute-string expansion t)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733 t))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
735 (defun he-line-search (str strip-prompt reverse)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 (let ((result ()))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
737 (while (and (not result)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
738 (if reverse
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
739 (re-search-backward
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 (he-line-search-regexp str strip-prompt)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741 nil t)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
742 (re-search-forward
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
743 (he-line-search-regexp str strip-prompt)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
744 nil t)))
26449
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
745 (setq result (buffer-substring-no-properties (match-end 1)
725d46ec6403 Use new backquote syntax.
Gerd Moellmann <gerd@gnu.org>
parents: 22250
diff changeset
746 (match-end 0)))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
747 (if (he-string-member result he-tried-table t)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
748 (setq result nil))) ; if already in table, ignore
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
749 result))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
750
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
751 (defun he-line-beg (strip-prompt)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752 (save-excursion
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
753 (if (re-search-backward (he-line-search-regexp "" strip-prompt)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 (save-excursion (beginning-of-line)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 (point)) t)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
756 (match-beginning 2)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 (point))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
758
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 (defun he-line-search-regexp (pat strip-prompt)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760 (if strip-prompt
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
761 (concat "\\(" comint-prompt-regexp "\\|^\\s-*\\)\\("
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 (regexp-quote pat)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
763 "[^\n]*[^ \t\n]\\)")
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
764 (concat "^\\(\\s-*\\)\\("
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
765 (regexp-quote pat)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
766 "[^\n]*[^ \t\n]\\)")))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
767
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
768 (defun try-expand-list (old)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
769 "Try to complete the current beginning of a list.
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
770 The argument OLD has to be nil the first call of this function, and t
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
771 for subsequent calls (for further possible completions of the same
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
772 string). It returns t if a new completion is found, nil otherwise."
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
773 (let ((expansion ()))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
774 (if (not old)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
775 (progn
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
776 (he-init-string (he-list-beg) (point))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
777 (set-marker he-search-loc he-string-beg)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
778 (setq he-search-bw t)))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
779
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
780 (if (not (equal he-search-string ""))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
781 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
782 (save-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
783 (if hippie-expand-no-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
784 (widen))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
785 ;; Try looking backward unless inhibited.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
786 (if he-search-bw
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
787 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
788 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
789 (setq expansion (he-list-search he-search-string t))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
790 (set-marker he-search-loc (point))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
791 (if (not expansion)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
792 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
793 (set-marker he-search-loc he-string-end)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
794 (setq he-search-bw ())))))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
795
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
796 (if (not expansion) ; Then look forward.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
797 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
798 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
799 (setq expansion (he-list-search he-search-string nil))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
800 (set-marker he-search-loc (point)))))))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
801
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
802 (if (not expansion)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
803 (progn
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
804 (if old (he-reset-string))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
805 ())
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
806 (progn
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
807 (he-substitute-string expansion t)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
808 t))))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
809
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
810 (defun try-expand-list-all-buffers (old)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
811 "Try to complete the current list, searching all other buffers.
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
812 The argument OLD has to be nil the first call of this function, and t
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
813 for subsequent calls (for further possible completions of the same
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
814 string). It returns t if a new completion is found, nil otherwise."
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
815 (let ((expansion ())
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
816 (buf (current-buffer))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
817 (orig-case-fold-search case-fold-search))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
818 (if (not old)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
819 (progn
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
820 (he-init-string (he-list-beg) (point))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
821 (setq he-search-bufs (buffer-list))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
822 (setq he-searched-n-bufs 0)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
823 (set-marker he-search-loc 1 (car he-search-bufs))))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
824
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
825 (if (not (equal he-search-string ""))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
826 (while (and he-search-bufs
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
827 (not expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
828 (or (not hippie-expand-max-buffers)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
829 (< he-searched-n-bufs hippie-expand-max-buffers)))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
830 (set-buffer (car he-search-bufs))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
831 (if (and (not (eq (current-buffer) buf))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
832 (if hippie-expand-only-buffers
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
833 (he-buffer-member hippie-expand-only-buffers)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
834 (not (he-buffer-member hippie-expand-ignore-buffers))))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
835 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
836 (save-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
837 (if hippie-expand-no-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
838 (widen))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
839 (goto-char he-search-loc)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
840 (setq expansion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
841 (let ((case-fold-search orig-case-fold-search))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
842 (he-list-search he-search-string nil)))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
843 (set-marker he-search-loc (point))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
844 (if (not expansion)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
845 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
846 (setq he-search-bufs (cdr he-search-bufs))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
847 (setq he-searched-n-bufs (1+ he-searched-n-bufs))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
848 (set-marker he-search-loc 1 (car he-search-bufs))))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
849 (setq he-search-bufs (cdr he-search-bufs))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
850 (set-marker he-search-loc 1 (car he-search-bufs)))))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
851
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
852 (set-buffer buf)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
853 (if (not expansion)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
854 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
855 (if old (he-reset-string))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
856 ())
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
857 (progn
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
858 (he-substitute-string expansion t)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
859 t))))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
860
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
861 (defun he-list-search (str reverse)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
862 (let ((result ())
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
863 beg pos err)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
864 (while (and (not result)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
865 (if reverse
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
866 (search-backward str nil t)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
867 (search-forward str nil t)))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
868 (setq pos (point))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
869 (setq beg (match-beginning 0))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
870 (goto-char beg)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
871 (setq err ())
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
872 (condition-case ()
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
873 (forward-list 1)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
874 (error (setq err t)))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
875 (if (and reverse
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
876 (> (point) he-string-beg))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
877 (setq err t))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
878 (if (not err)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
879 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
880 (setq result (buffer-substring-no-properties beg (point)))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
881 (if (he-string-member result he-tried-table t)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
882 (setq result nil)))) ; if already in table, ignore
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
883 (goto-char pos))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
884 result))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
885
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
886 (defun he-list-beg ()
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
887 (save-excursion
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
888 (condition-case ()
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
889 (backward-up-list 1)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
890 (error ()))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
891 (point)))
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
892
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
893 (defun try-expand-all-abbrevs (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
894 "Try to expand word before point according to all abbrev tables.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
895 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
896 for subsequent calls (for further possible expansions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
897 string). It returns t if a new expansion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
898 (if (not old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
899 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
900 (he-init-string (he-dabbrev-beg) (point))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
901 (setq he-expand-list
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
902 (and (not (equal he-search-string ""))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
903 (mapcar (function (lambda (sym)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
904 (if (and (boundp sym) (vectorp (eval sym)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
905 (abbrev-expansion (downcase he-search-string)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
906 (eval sym)))))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
907 (append '(local-abbrev-table
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
908 global-abbrev-table)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
909 abbrev-table-name-list))))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
910 (while (and he-expand-list
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
911 (or (not (car he-expand-list))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
912 (he-string-member (car he-expand-list) he-tried-table t)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
913 (setq he-expand-list (cdr he-expand-list)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
914 (if (null he-expand-list)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
915 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
916 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
917 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
918 (progn
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
919 (he-substitute-string (car he-expand-list) t)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
920 (setq he-expand-list (cdr he-expand-list))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
921 t)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
922
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
923 (defun try-expand-dabbrev (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
924 "Try to expand word \"dynamically\", searching the current buffer.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
925 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
926 for subsequent calls (for further possible expansions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
927 string). It returns t if a new expansion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
928 (let ((expansion ()))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
929 (if (not old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
930 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
931 (he-init-string (he-dabbrev-beg) (point))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
932 (set-marker he-search-loc he-string-beg)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
933 (setq he-search-bw t)))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
934
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
935 (if (not (equal he-search-string ""))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
936 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
937 (save-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
938 (if hippie-expand-no-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
939 (widen))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
940 ;; Try looking backward unless inhibited.
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
941 (if he-search-bw
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
942 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
943 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
944 (setq expansion (he-dabbrev-search he-search-string t))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
945 (set-marker he-search-loc (point))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
946 (if (not expansion)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
947 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
948 (set-marker he-search-loc he-string-end)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
949 (setq he-search-bw ())))))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
950
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
951 (if (not expansion) ; Then look forward.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
952 (progn
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
953 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
954 (setq expansion (he-dabbrev-search he-search-string nil))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
955 (set-marker he-search-loc (point)))))))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
956
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
957 (if (not expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
958 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
959 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
960 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
961 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
962 (he-substitute-string expansion t)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
963 t))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
964
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
965 (defun try-expand-dabbrev-all-buffers (old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
966 "Tries to expand word \"dynamically\", searching all other buffers.
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
967 The argument OLD has to be nil the first call of this function, and t
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
968 for subsequent calls (for further possible expansions of the same
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
969 string). It returns t if a new expansion is found, nil otherwise."
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
970 (let ((expansion ())
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
971 (buf (current-buffer))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
972 (orig-case-fold-search case-fold-search))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
973 (if (not old)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
974 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
975 (he-init-string (he-dabbrev-beg) (point))
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
976 (setq he-search-bufs (buffer-list))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
977 (setq he-searched-n-bufs 0)
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
978 (set-marker he-search-loc 1 (car he-search-bufs))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
979
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
980 (if (not (equal he-search-string ""))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
981 (while (and he-search-bufs
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
982 (not expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
983 (or (not hippie-expand-max-buffers)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
984 (< he-searched-n-bufs hippie-expand-max-buffers)))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
985 (set-buffer (car he-search-bufs))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
986 (if (and (not (eq (current-buffer) buf))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
987 (if hippie-expand-only-buffers
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
988 (he-buffer-member hippie-expand-only-buffers)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
989 (not (he-buffer-member hippie-expand-ignore-buffers))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
990 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
991 (save-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
992 (if hippie-expand-no-restriction
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
993 (widen))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
994 (goto-char he-search-loc)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
995 (setq expansion
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
996 (let ((case-fold-search orig-case-fold-search))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
997 (he-dabbrev-search he-search-string nil)))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
998 (set-marker he-search-loc (point))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
999 (if (not expansion)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1000 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1001 (setq he-search-bufs (cdr he-search-bufs))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1002 (setq he-searched-n-bufs (1+ he-searched-n-bufs))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1003 (set-marker he-search-loc 1 (car he-search-bufs))))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1004 (setq he-search-bufs (cdr he-search-bufs))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1005 (set-marker he-search-loc 1 (car he-search-bufs)))))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1006
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1007 (set-buffer buf)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1008 (if (not expansion)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1009 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1010 (if old (he-reset-string))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1011 ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1012 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1013 (he-substitute-string expansion t)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1014 t))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1015
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1016 ;; Thanks go to Jeff Dairiki <dairiki@faraday.apl.washington.edu> who
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1017 ;; suggested this one.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1018 (defun try-expand-dabbrev-visible (old)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1019 "Try to expand word \"dynamically\", searching visible window parts.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1020 The argument OLD has to be nil the first call of this function, and t
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1021 for subsequent calls (for further possible expansions of the same
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1022 string). It returns t if a new expansion is found, nil otherwise."
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1023 (let ((expansion ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1024 (buf (current-buffer))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1025 (flag (if (frame-visible-p (window-frame (selected-window)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1026 'visible t)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1027 (if (not old)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1028 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1029 (he-init-string (he-dabbrev-beg) (point))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1030 (setq he-search-window (selected-window))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1031 (set-marker he-search-loc
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1032 (window-start he-search-window)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1033 (window-buffer he-search-window))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1034
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1035 (while (and (not (equal he-search-string ""))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1036 (marker-position he-search-loc)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1037 (not expansion))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1038 (save-excursion
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1039 (set-buffer (marker-buffer he-search-loc))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1040 (goto-char he-search-loc)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1041 (setq expansion (he-dabbrev-search he-search-string ()
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1042 (window-end he-search-window)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1043 (if (and expansion
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1044 (eq (marker-buffer he-string-beg) (current-buffer))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1045 (eq (marker-position he-string-beg) (match-beginning 0)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1046 (setq expansion (he-dabbrev-search he-search-string ()
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1047 (window-end he-search-window))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1048 (set-marker he-search-loc (point) (current-buffer)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1049 (if (not expansion)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1050 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1051 (setq he-search-window (next-window he-search-window nil flag))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1052 (if (eq he-search-window (selected-window))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1053 (set-marker he-search-loc nil)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1054 (set-marker he-search-loc (window-start he-search-window)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1055 (window-buffer he-search-window))))))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1056
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1057 (set-buffer buf)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1058 (if (not expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1059 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1060 (if old (he-reset-string))
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1061 ())
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1062 (progn
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1063 (he-substitute-string expansion t)
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1064 t))))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1065
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1066 (defun he-dabbrev-search (pattern &optional reverse limit)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1067 (let ((result ())
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1068 (regpat (cond ((not hippie-expand-dabbrev-as-symbol)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1069 (concat "\\<" (regexp-quote pattern) "\\sw+"))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1070 ((eq (char-syntax (aref pattern 0)) ?_)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1071 (concat (regexp-quote pattern) "\\(\\sw\\|\\s_\\)+"))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1072 (t
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1073 (concat "\\<" (regexp-quote pattern)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1074 "\\(\\sw\\|\\s_\\)+")))))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1075 (while (and (not result)
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1076 (if reverse
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1077 (re-search-backward regpat limit t)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1078 (re-search-forward regpat limit t)))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1079 (setq result (buffer-substring-no-properties (match-beginning 0)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1080 (match-end 0)))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1081 (if (or (and hippie-expand-dabbrev-as-symbol
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1082 (> (match-beginning 0) (point-min))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1083 (memq (char-syntax (char-after (1- (match-beginning 0))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1084 '(?_ ?w)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1085 (he-string-member result he-tried-table t))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1086 (setq result nil))) ; ignore if bad prefix or already in table
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1087 result))
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1088
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1089 (defun he-dabbrev-beg ()
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1090 (let ((op (point)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1091 (save-excursion
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1092 (if hippie-expand-dabbrev-skip-space
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1093 (skip-syntax-backward ". "))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1094 (if (= (skip-syntax-backward (if hippie-expand-dabbrev-as-symbol
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1095 "w_" "w"))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1096 0)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1097 op
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1098 (point)))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1099
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1100 (defun try-expand-dabbrev-from-kill (old)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1101 "Try to expand word \"dynamically\", searching the kill ring.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1102 The argument OLD has to be nil the first call of this function, and t
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1103 for subsequent calls (for further possible completions of the same
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1104 string). It returns t if a new completion is found, nil otherwise."
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1105 (let ((expansion ()))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1106 (if (not old)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1107 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1108 (he-init-string (he-dabbrev-beg) (point))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1109 (setq he-expand-list
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1110 (if (not (equal he-search-string ""))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1111 kill-ring))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1112 (setq he-search-loc2 0)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1113 (if (not (equal he-search-string ""))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1114 (setq expansion (he-dabbrev-kill-search he-search-string)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1115 (if (not expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1116 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1117 (if old (he-reset-string))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1118 ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1119 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1120 (he-substitute-string expansion t)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1121 t))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1122
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1123 (defun he-dabbrev-kill-search (pattern)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1124 (let ((result ())
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1125 (regpat (cond ((not hippie-expand-dabbrev-as-symbol)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1126 (concat "\\<" (regexp-quote pattern) "\\sw+"))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1127 ((eq (char-syntax (aref pattern 0)) ?_)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1128 (concat (regexp-quote pattern) "\\(\\sw\\|\\s_\\)+"))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1129 (t
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1130 (concat "\\<" (regexp-quote pattern)
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1131 "\\(\\sw\\|\\s_\\)+"))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1132 (killstr (car he-expand-list)))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1133 (while (and (not result)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1134 he-expand-list)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1135 (while (and (not result)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1136 (string-match regpat killstr he-search-loc2))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1137 (setq result (substring killstr (match-beginning 0) (match-end 0)))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1138 (set-text-properties 0 (length result) () result)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1139 (setq he-search-loc2 (1+ (match-beginning 0)))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1140 (if (or (and hippie-expand-dabbrev-as-symbol
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1141 (> (match-beginning 0) 0)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1142 (memq (char-syntax (aref killstr (1- (match-beginning 0))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1143 '(?_ ?w)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1144 (he-string-member result he-tried-table t))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1145 (setq result nil))) ; ignore if bad prefix or already in table
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1146 (if (and (not result)
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1147 he-expand-list)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1148 (progn
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1149 (setq he-expand-list (cdr he-expand-list))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1150 (setq killstr (car he-expand-list))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1151 (setq he-search-loc2 0))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1152 result))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1153
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1154 (defun try-expand-whole-kill (old)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1155 "Try to complete text with something from the kill ring.
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1156 The argument OLD has to be nil the first call of this function, and t
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1157 for subsequent calls (for further possible completions of the same
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1158 string). It returns t if a new completion is found, nil otherwise."
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1159 (let ((expansion ()))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1160 (if (not old)
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1161 (progn
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1162 (he-init-string (he-kill-beg) (point))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1163 (if (not (he-string-member he-search-string he-tried-table))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1164 (setq he-tried-table (cons he-search-string he-tried-table)))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1165 (setq he-expand-list
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1166 (if (not (equal he-search-string ""))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1167 kill-ring))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1168 (setq he-search-loc2 ())))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1169 (if (not (equal he-search-string ""))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1170 (setq expansion (he-whole-kill-search he-search-string)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1171 (if (not expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1172 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1173 (if old (he-reset-string))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1174 ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1175 (progn
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1176 (he-substitute-string expansion)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1177 t))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1178
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1179 (defun he-whole-kill-search (str)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1180 (let ((case-fold-search ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1181 (result ())
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1182 (str (regexp-quote str))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1183 (killstr (car he-expand-list))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1184 (pos -1))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1185 (while (and (not result)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1186 he-expand-list)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1187 (if (not he-search-loc2)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1188 (while (setq pos (string-match str killstr (1+ pos)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1189 (setq he-search-loc2 (cons pos he-search-loc2))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1190 (while (and (not result)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1191 he-search-loc2)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1192 (setq pos (car he-search-loc2))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1193 (setq he-search-loc2 (cdr he-search-loc2))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1194 (save-excursion
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1195 (goto-char he-string-beg)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1196 (if (and (>= (- (point) pos) (point-min)) ; avoid some string GC
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1197 (eq (char-after (- (point) pos)) (aref killstr 0))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1198 (search-backward (substring killstr 0 pos)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1199 (- (point) pos) t))
21131
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1200 (progn
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1201 (setq result (substring killstr pos))
e4acb217b4af (hippie-expand-dabbrev-skip-space): Renamed `he-dabbrev-skip-space'.
Richard M. Stallman <rms@gnu.org>
parents: 18584
diff changeset
1202 (set-text-properties 0 (length result) () result))))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1203 (if (and result
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1204 (he-string-member result he-tried-table))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1205 (setq result nil))) ; ignore if already in table
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1206 (if (and (not result)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1207 he-expand-list)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1208 (progn
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 42205
diff changeset
1209 (setq he-expand-list (cdr he-expand-list))
13207
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1210 (setq killstr (car he-expand-list))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1211 (setq pos -1))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1212 result))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1213
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1214 (defun he-kill-beg ()
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1215 (let ((op (point)))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1216 (save-excursion
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1217 (skip-syntax-backward "^w_")
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1218 (if (= (skip-syntax-backward "w_") 0)
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1219 op
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1220 (point)))))
2b541cc4cd97 (hippie-expand): Removed bug - don't undo from another buffer.
Richard M. Stallman <rms@gnu.org>
parents: 7639
diff changeset
1221
1737
d7e9186edefa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1222
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
1223 (provide 'hippie-exp)
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
1224
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49549
diff changeset
1225 ;;; arch-tag: 5e6e00bf-b061-4a7a-9b46-de0ae105ab99
4130
e5aee6a3bb75 * hippie-exp.el: Renamed from hippie.el.
Jim Blandy <jimb@redhat.com>
parents: 2233
diff changeset
1226 ;;; hippie-exp.el ends here