Mercurial > emacs
annotate lisp/isearch.el @ 35362:f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
1 here rather than each time through
isearch-lazy-highlight-new-loop.
(isearch-lazy-highlight-max): Variable deleted.
(isearch-lazy-highlight-max-at-a-time): New user variable, like
isearch-lazy-highlight-max but controls a single invocation of
isearch-lazy-highlight-update.
(isearch-lazy-highlight-wrapped): Variable recreated.
(isearch-lazy-highlight-window-start): New variable.
(isearch-lazy-highlight-cleanup): Restored to behavior of
before 2-Jan.
(isearch-lazy-highlight-remove-overlays): Function deleted;
behavior folded into isearch-lazy-highlight-cleanup. "Keep"
behavior removed.
(isearch-lazy-highlight-new-loop): Restore old behavior of calling
isearch-lazy-highlight-update in a loop rather than just once.
Test isearch-invalid-regexp here and decide not to start a new
loop, rather than testing it each time through
isearch-lazy-highlight-update.
(isearch-lazy-highlight-search): Function restored.
(isearch-lazy-highlight-update): Get called in a timer loop again,
but this time highlight more than one match each time through.
Only highlight matches in the visible part of the window. Start
at point, move in the direction of the search, and wrap around at
the edge of the window. Use sit-for to force redisplay and ensure
window-start is credible. "Face suppressing" behavior removed;
overlay priorities should make it unnecessary, right?
(isearch-highlight): Face suppressing behavior removed.
(isearch-dehighlight): Face suppressing behavior removed.
(isearch-set-lazy-highlight-faces-at): Removed.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 17 Jan 2001 14:10:25 +0000 |
parents | 44f290e19a70 |
children | 01853844ff61 |
rev | line source |
---|---|
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2232
diff
changeset
|
1 ;;; isearch.el --- incremental search minor mode. |
2230
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
2 |
35083
cfac1ece4f23
(isearch-old-signal-hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35012
diff
changeset
|
3 ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 1999, 2000, 2001 |
28504
bb2bb38512a3
(isearch-mode-map): Define M-C-s like C-s and M-C-r
Gerd Moellmann <gerd@gnu.org>
parents:
28100
diff
changeset
|
4 ;; Free Software Foundation, Inc. |
846
20674ae6bf52
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
792
diff
changeset
|
5 |
2230
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
6 ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu> |
11969
fe63b4e6021a
(isearch-edit-string): Don't bind isearch-other-end.
Karl Heuer <kwzh@gnu.org>
parents:
11643
diff
changeset
|
7 ;; Maintainer: FSF |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
8 ;; Keywords: matching |
725 | 9 |
4839 | 10 ;; This file is part of GNU Emacs. |
725 | 11 |
6736
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
12 ;; GNU Emacs is free software; you can redistribute it and/or modify |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
13 ;; it under the terms of the GNU General Public License as published by |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
14 ;; the Free Software Foundation; either version 2, or (at your option) |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
15 ;; any later version. |
725 | 16 |
6736
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
17 ;; GNU Emacs is distributed in the hope that it will be useful, |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
20 ;; GNU General Public License for more details. |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
21 |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5649
diff
changeset
|
22 ;; You should have received a copy of the GNU General Public License |
14169 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
725 | 26 |
2230
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
27 ;;; Commentary: |
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
28 |
725 | 29 ;; Instructions |
30 | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
31 ;; For programmed use of isearch-mode, e.g. calling (isearch-forward), |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
32 ;; isearch-mode behaves modally and does not return until the search |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
33 ;; is completed. It uses a recursive-edit to behave this way. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
34 |
725 | 35 ;; The key bindings active within isearch-mode are defined below in |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
36 ;; `isearch-mode-map' which is given bindings close to the default |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
37 ;; characters of the original isearch.el. With `isearch-mode', |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
38 ;; however, you can bind multi-character keys and it should be easier |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
39 ;; to add new commands. One bug though: keys with meta-prefix cannot |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
40 ;; be longer than two chars. Also see minibuffer-local-isearch-map |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
41 ;; for bindings active during `isearch-edit-string'. |
725 | 42 |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
43 ;; isearch-mode should work even if you switch windows with the mouse, |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
44 ;; in which case isearch-mode is terminated automatically before the |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
45 ;; switch. |
725 | 46 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
47 ;; The search ring and completion commands automatically put you in |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
48 ;; the minibuffer to edit the string. This gives you a chance to |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
49 ;; modify the search string before executing the search. There are |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
50 ;; three commands to terminate the editing: C-s and C-r exit the |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
51 ;; minibuffer and search forward and reverse respectively, while C-m |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
52 ;; exits and does a nonincremental search. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
53 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
54 ;; Exiting immediately from isearch uses isearch-edit-string instead |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
55 ;; of nonincremental-search, if search-nonincremental-instead is non-nil. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
56 ;; The name of this option should probably be changed if we decide to |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
57 ;; keep the behavior. No point in forcing nonincremental search until |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
58 ;; the last possible moment. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
59 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
60 ;; TODO |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3526
diff
changeset
|
61 ;; - Integrate the emacs 19 generalized command history. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
62 ;; - Think about incorporating query-replace. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
63 ;; - Hooks and options for failed search. |
792
45d748a65f24
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
725
diff
changeset
|
64 |
2230
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
65 ;;; Change Log: |
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
66 |
14169 | 67 ;; Changes before those recorded in ChangeLog: |
792
45d748a65f24
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
725
diff
changeset
|
68 |
14169 | 69 ;; Revision 1.4 92/09/14 16:26:02 liberte |
70 ;; Added prefix args to isearch-forward, etc. to switch between | |
71 ;; string and regular expression searching. | |
72 ;; Added some support for lemacs. | |
73 ;; Added general isearch-highlight option - but only for lemacs so far. | |
74 ;; Added support for frame switching in emacs 19. | |
75 ;; Added word search option to isearch-edit-string. | |
76 ;; Renamed isearch-quit to isearch-abort. | |
77 ;; Numerous changes to comments and doc strings. | |
78 ;; | |
79 ;; Revision 1.3 92/06/29 13:10:08 liberte | |
80 ;; Moved modal isearch-mode handling into isearch-mode. | |
81 ;; Got rid of buffer-local isearch variables. | |
82 ;; isearch-edit-string used by ring adjustments, completion, and | |
83 ;; nonincremental searching. C-s and C-r are additional exit commands. | |
84 ;; Renamed all regex to regexp. | |
85 ;; Got rid of found-start and found-point globals. | |
86 ;; Generalized handling of upper-case chars. | |
792
45d748a65f24
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
725
diff
changeset
|
87 |
14169 | 88 ;; Revision 1.2 92/05/27 11:33:57 liberte |
89 ;; Emacs version 19 has a search ring, which is supported here. | |
90 ;; Other fixes found in the version 19 isearch are included here. | |
91 ;; | |
92 ;; Also see variables search-caps-disable-folding, | |
93 ;; search-nonincremental-instead, search-whitespace-regexp, and | |
94 ;; commands isearch-toggle-regexp, isearch-edit-string. | |
95 ;; | |
96 ;; semi-modal isearching is supported. | |
97 | |
98 ;; Changes for 1.1 | |
99 ;; 3/18/92 Fixed invalid-regexp. | |
100 ;; 3/18/92 Fixed yanking in regexps. | |
792
45d748a65f24
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
725
diff
changeset
|
101 |
2230
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
102 ;;; Code: |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
103 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
104 |
9935
a36d24b4b365
(isearch-gnu-emacs-events): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
9934
diff
changeset
|
105 ;;; Some additional options and constants. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
106 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
107 (defgroup isearch nil |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
108 "Incremental search minor mode." |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
109 :link '(emacs-commentary-link "isearch") |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
110 :link '(custom-manual "(emacs)Incremental Search") |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
111 :prefix "isearch-" |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
112 :prefix "search-" |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
113 :group 'matching) |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
114 |
725 | 115 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
116 (defcustom search-exit-option t |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
117 "*Non-nil means random control characters terminate incremental search." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
118 :type 'boolean |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
119 :group 'isearch) |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
120 |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
121 (defcustom search-slow-window-lines 1 |
1143
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
122 "*Number of lines in slow search display windows. |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
123 These are the short windows used during incremental search on slow terminals. |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
124 Negative means put the slow search window at the top (normally it's at bottom) |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
125 and the value is minus the number of lines." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
126 :type 'integer |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
127 :group 'isearch) |
725 | 128 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
129 (defcustom search-slow-speed 1200 |
1143
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
130 "*Highest terminal speed at which to use \"slow\" style incremental search. |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
131 This is the style where a one-line window is created to show the line |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
132 that the search has reached." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
133 :type 'integer |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
134 :group 'isearch) |
725 | 135 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
136 (defcustom search-upper-case 'not-yanks |
725 | 137 "*If non-nil, upper case chars disable case fold searching. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
138 That is, upper and lower case chars must match exactly. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
139 This applies no matter where the chars come from, but does not |
1143
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
140 apply to chars in regexps that are prefixed with `\\'. |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
141 If this value is `not-yanks', yanked text is always downcased." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
142 :type '(choice (const :tag "off" nil) |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
143 (const not-yanks) |
22587
5fe3766ec1a8
(search-upper-case): Use `other' widget type.
Andreas Schwab <schwab@suse.de>
parents:
22517
diff
changeset
|
144 (other :tag "on" t)) |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
145 :group 'isearch) |
725 | 146 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
147 (defcustom search-nonincremental-instead t |
725 | 148 "*If non-nil, do a nonincremental search instead if exiting immediately. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
149 Actually, `isearch-edit-string' is called to let you enter the search |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
150 string, and RET terminates editing and does a nonincremental search." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
151 :type 'boolean |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
152 :group 'isearch) |
725 | 153 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
154 (defcustom search-whitespace-regexp "\\s-+" |
725 | 155 "*If non-nil, regular expression to match a sequence of whitespace chars. |
19769
4c2159c165e5
(search-whitespace-regexp): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
19587
diff
changeset
|
156 This applies to regular expression incremental search. |
23055
e74ff474ff9b
(search-whitespace-regexp): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
22775
diff
changeset
|
157 You might want to use something like \"[ \\t\\r\\n]+\" instead. |
e74ff474ff9b
(search-whitespace-regexp): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
22775
diff
changeset
|
158 In the Customization buffer, that is `[' followed by a space, |
e74ff474ff9b
(search-whitespace-regexp): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
22775
diff
changeset
|
159 a tab, a carriage return (control-M), a newline, and `]+'." |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
160 :type 'regexp |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
161 :group 'isearch) |
725 | 162 |
18037
354ae98947b5
(search-highlight): Make it t by default.
Richard M. Stallman <rms@gnu.org>
parents:
17794
diff
changeset
|
163 (defcustom search-highlight t |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
164 "*Non-nil means incremental search highlights the current match." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
165 :type 'boolean |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
166 :group 'isearch) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
167 |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
168 (defcustom search-invisible 'open |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
169 "If t incremental search can match hidden text. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
170 nil means don't match invisible text. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
171 If the value is `open', if the text matched is made invisible by |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
172 an overlay having an `invisible' property and that overlay has a property |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
173 `isearch-open-invisible', then incremental search will show the contents. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
174 \(This applies when using `outline.el' and `hideshow.el'.)" |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
175 :type '(choice (const :tag "Match hidden text" t) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
176 (const :tag "Open overlays" open) |
18866
04d56f77da0d
(search-invisible): Fix typo.
Richard M. Stallman <rms@gnu.org>
parents:
18783
diff
changeset
|
177 (const :tag "Don't match hidden text" nil)) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
178 :group 'isearch) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
179 |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
180 (defcustom isearch-hide-immediately t |
19069
e132d9bcfd5d
(isearch-hide-immediately): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18866
diff
changeset
|
181 "If non-nil, re-hide an invisible match right away. |
e132d9bcfd5d
(isearch-hide-immediately): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18866
diff
changeset
|
182 This variable makes a difference when `search-invisible' is set to `open'. |
e132d9bcfd5d
(isearch-hide-immediately): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18866
diff
changeset
|
183 It means that after search makes some invisible text visible |
e132d9bcfd5d
(isearch-hide-immediately): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18866
diff
changeset
|
184 to show the match, it makes the text invisible again when the match moves. |
e132d9bcfd5d
(isearch-hide-immediately): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18866
diff
changeset
|
185 Ordinarily the text becomes invisible again at the end of the search." |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
186 :type 'boolean |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
187 :group 'isearch) |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
188 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
189 (defvar isearch-mode-hook nil |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
190 "Function(s) to call after starting up an incremental search.") |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
191 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
192 (defvar isearch-mode-end-hook nil |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
193 "Function(s) to call after terminating an incremental search.") |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
194 |
725 | 195 ;;; Search ring. |
196 | |
197 (defvar search-ring nil | |
198 "List of search string sequences.") | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
199 (defvar regexp-search-ring nil |
725 | 200 "List of regular expression search string sequences.") |
201 | |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
202 (defcustom search-ring-max 16 |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
203 "*Maximum length of search ring before oldest elements are thrown away." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
204 :type 'integer |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
205 :group 'isearch) |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
206 (defcustom regexp-search-ring-max 16 |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
207 "*Maximum length of regexp search ring before oldest elements are thrown away." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
208 :type 'integer |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
209 :group 'isearch) |
725 | 210 |
211 (defvar search-ring-yank-pointer nil | |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
212 "Index in `search-ring' of last string reused. |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
213 nil if none yet.") |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
214 (defvar regexp-search-ring-yank-pointer nil |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
215 "Index in `regexp-search-ring' of last string reused. |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
216 nil if none yet.") |
725 | 217 |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
218 (defcustom search-ring-update nil |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
219 "*Non-nil if advancing or retreating in the search ring should cause search. |
17637
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
220 Default value, nil, means edit the string instead." |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
221 :type 'boolean |
b63c3782cb4c
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17139
diff
changeset
|
222 :group 'isearch) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
223 |
725 | 224 ;;; Define isearch-mode keymap. |
225 | |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
226 (defvar isearch-mode-map |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
227 (let* ((i 0) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
228 (map (make-keymap))) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
229 (or (vectorp (nth 1 map)) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
230 (char-table-p (nth 1 map)) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
231 (error "The initialization of isearch-mode-map must be updated")) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
232 ;; Make all multibyte characters search for themselves. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
233 (let ((l (generic-character-list)) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
234 (table (nth 1 map))) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
235 (while l |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
236 (set-char-table-default table (car l) 'isearch-printing-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
237 (setq l (cdr l)))) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
238 ;; Make function keys, etc, exit the search. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
239 (define-key map [t] 'isearch-other-control-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
240 ;; Control chars, by default, end isearch mode transparently. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
241 ;; We need these explicit definitions because, in a dense keymap, |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
242 ;; the binding for t does not affect characters. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
243 ;; We use a dense keymap to save space. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
244 (while (< i ?\ ) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
245 (define-key map (make-string 1 i) 'isearch-other-control-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
246 (setq i (1+ i))) |
725 | 247 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
248 ;; Single-byte printing chars extend the search string by default. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
249 (setq i ?\ ) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
250 (while (< i 256) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
251 (define-key map (vector i) 'isearch-printing-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
252 (setq i (1+ i))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
253 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
254 ;; To handle local bindings with meta char prefix keys, define |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
255 ;; another full keymap. This must be done for any other prefix |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
256 ;; keys as well, one full keymap per char of the prefix key. It |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
257 ;; would be simpler to disable the global keymap, and/or have a |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
258 ;; default local key binding for any key not otherwise bound. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
259 (let ((meta-map (make-sparse-keymap))) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
260 (define-key map (char-to-string meta-prefix-char) meta-map) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
261 (define-key map [escape] meta-map)) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
262 (define-key map (vector meta-prefix-char t) 'isearch-other-meta-char) |
10166
2cc7d710cf56
(isearch-mode-map): Move the code to set up the meta submap earlier in
Richard M. Stallman <rms@gnu.org>
parents:
10117
diff
changeset
|
263 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
264 ;; Several non-printing chars change the searching behavior. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
265 (define-key map "\C-s" 'isearch-repeat-forward) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
266 (define-key map "\C-r" 'isearch-repeat-backward) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
267 ;; Define M-C-s and M-C-r like C-s and C-r so that the same key |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
268 ;; combinations can be used to repeat regexp isearches that can |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
269 ;; be used to start these searches. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
270 (define-key map "\M-\C-s" 'isearch-repeat-forward) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
271 (define-key map "\M-\C-r" 'isearch-repeat-backward) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
272 (define-key map "\177" 'isearch-delete-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
273 (define-key map "\C-g" 'isearch-abort) |
35083
cfac1ece4f23
(isearch-old-signal-hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35012
diff
changeset
|
274 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
275 ;; This assumes \e is the meta-prefix-char. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
276 (or (= ?\e meta-prefix-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
277 (error "Inconsistency in isearch.el")) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
278 (define-key map "\e\e\e" 'isearch-cancel) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
279 (define-key map [escape escape escape] 'isearch-cancel) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
280 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
281 (define-key map "\C-q" 'isearch-quote-char) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
282 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
283 (define-key map "\r" 'isearch-exit) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
284 (define-key map "\C-j" 'isearch-printing-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
285 (define-key map "\t" 'isearch-printing-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
286 (define-key map " " 'isearch-whitespace-chars) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
287 (define-key map [?\S-\ ] 'isearch-whitespace-chars) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
288 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
289 (define-key map "\C-w" 'isearch-yank-word) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
290 (define-key map "\C-y" 'isearch-yank-line) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
291 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
292 ;; Define keys for regexp chars * ? |. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
293 ;; Nothing special for + because it matches at least once. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
294 (define-key map "*" 'isearch-*-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
295 (define-key map "?" 'isearch-*-char) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
296 (define-key map "|" 'isearch-|-char) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
297 |
2425
fd15462e52a1
(isearch-mode-map): Delete the binding for C-h.
Richard M. Stallman <rms@gnu.org>
parents:
2296
diff
changeset
|
298 ;;; Turned off because I find I expect to get the global definition--rms. |
fd15462e52a1
(isearch-mode-map): Delete the binding for C-h.
Richard M. Stallman <rms@gnu.org>
parents:
2296
diff
changeset
|
299 ;;; ;; Instead bind C-h to special help command for isearch-mode. |
fd15462e52a1
(isearch-mode-map): Delete the binding for C-h.
Richard M. Stallman <rms@gnu.org>
parents:
2296
diff
changeset
|
300 ;;; (define-key map "\C-h" 'isearch-mode-help) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
301 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
302 (define-key map "\M-n" 'isearch-ring-advance) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
303 (define-key map "\M-p" 'isearch-ring-retreat) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
304 (define-key map "\M-y" 'isearch-yank-kill) |
1557
816bfa185671
* isearch.el (isearch-frames-exist): This isn't what we want -
Jim Blandy <jimb@redhat.com>
parents:
1534
diff
changeset
|
305 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
306 (define-key map "\M-\t" 'isearch-complete) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
307 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
308 ;; Pass frame events transparently so they won't exit the search. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
309 ;; In particular, if we have more than one display open, then a |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
310 ;; switch-frame might be generated by someone typing at another keyboard. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
311 (define-key map [switch-frame] nil) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
312 (define-key map [delete-frame] nil) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
313 (define-key map [iconify-frame] nil) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
314 (define-key map [make-frame-visible] nil) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
315 ;; For searching multilingual text. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
316 (define-key map "\C-\\" 'isearch-toggle-input-method) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
317 (define-key map "\C-^" 'isearch-toggle-specified-input-method) |
12284
07a76f045154
(isearch-mode-map): Bind frame events to nil.
Karl Heuer <kwzh@gnu.org>
parents:
12265
diff
changeset
|
318 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
319 ;; People expect to be able to paste with the mouse. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
320 (define-key map [mouse-2] #'isearch-mouse-yank) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
321 (define-key map [down-mouse-2] nil) |
25572 | 322 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
323 ;; Some bindings you may want to put in your isearch-mode-hook. |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
324 ;; Suggest some alternates... |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
325 (define-key map "\M-c" 'isearch-toggle-case-fold) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
326 (define-key map "\M-r" 'isearch-toggle-regexp) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
327 (define-key map "\M-e" 'isearch-edit-string) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
328 |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
329 map) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
330 "Keymap for `isearch-mode'.") |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
331 |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
332 (defvar minibuffer-local-isearch-map |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
333 (let ((map (make-sparse-keymap))) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
334 (set-keymap-parent map minibuffer-local-map) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
335 (define-key map "\r" 'isearch-nonincremental-exit-minibuffer) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
336 (define-key map "\M-n" 'isearch-ring-advance-edit) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
337 (define-key map "\M-p" 'isearch-ring-retreat-edit) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
338 (define-key map "\M-\t" 'isearch-complete-edit) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
339 (define-key map "\C-s" 'isearch-forward-exit-minibuffer) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
340 (define-key map "\C-r" 'isearch-reverse-exit-minibuffer) |
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
341 map) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
342 "Keymap for editing isearch strings in the minibuffer.") |
725 | 343 |
344 ;; Internal variables declared globally for byte-compiler. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
345 ;; These are all set with setq while isearching |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
346 ;; and bound locally while editing the search string. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
347 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
348 (defvar isearch-forward nil) ; Searching in the forward direction. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
349 (defvar isearch-regexp nil) ; Searching for a regexp. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
350 (defvar isearch-word nil) ; Searching for words. |
725 | 351 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
352 (defvar isearch-cmds nil) ; Stack of search status sets. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
353 (defvar isearch-string "") ; The current search string. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
354 (defvar isearch-message "") ; text-char-description version of isearch-string |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
355 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
356 (defvar isearch-success t) ; Searching is currently successful. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
357 (defvar isearch-invalid-regexp nil) ; Regexp not well formed. |
5601
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
358 (defvar isearch-within-brackets nil) ; Regexp has unclosed [. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
359 (defvar isearch-other-end nil) ; Start (end) of match if forward (backward). |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
360 (defvar isearch-wrapped nil) ; Searching restarted from the top (bottom). |
725 | 361 (defvar isearch-barrier 0) |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
362 (defvar isearch-just-started nil) |
725 | 363 |
7294
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
364 ; case-fold-search while searching. |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
365 ; either nil, t, or 'yes. 'yes means the same as t except that mixed |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
366 ; case in the search string is ignored. |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
367 (defvar isearch-case-fold-search nil) |
725 | 368 |
33725
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
369 ;; Used to save default value while isearch is active |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
370 (defvar isearch-original-minibuffer-message-timeout nil) |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
371 |
725 | 372 (defvar isearch-adjusted nil) |
373 (defvar isearch-slow-terminal-mode nil) | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
374 ;;; If t, using a small window. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
375 (defvar isearch-small-window nil) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
376 (defvar isearch-opoint 0) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
377 ;;; The window configuration active at the beginning of the search. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
378 (defvar isearch-window-configuration nil) |
725 | 379 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
380 ;; Flag to indicate a yank occurred, so don't move the cursor. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
381 (defvar isearch-yank-flag nil) |
725 | 382 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
383 ;;; A function to be called after each input character is processed. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
384 ;;; (It is not called after characters that exit the search.) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
385 ;;; It is only set from an optional argument to `isearch-mode'. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
386 (defvar isearch-op-fun nil) |
725 | 387 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
388 ;;; Is isearch-mode in a recursive edit for modal searching. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
389 (defvar isearch-recursive-edit nil) |
725 | 390 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
391 ;;; Should isearch be terminated after doing one search? |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
392 (defvar isearch-nonincremental nil) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
393 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
394 ;; New value of isearch-forward after isearch-edit-string. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
395 (defvar isearch-new-forward nil) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
396 |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
397 ;; Accumulate here the overlays opened during searching. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
398 (defvar isearch-opened-overlays nil) |
725 | 399 |
22775
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
400 ;; The value of input-method-function when isearch is invoked. |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
401 (defvar isearch-input-method-function nil) |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
402 |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
403 ;; A flag to tell if input-method-function is locally bound when |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
404 ;; isearch is invoked. |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
405 (defvar isearch-input-method-local-p nil) |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
406 |
725 | 407 ;; Minor-mode-alist changes - kind of redundant with the |
408 ;; echo area, but if isearching in multiple windows, it can be useful. | |
409 | |
410 (or (assq 'isearch-mode minor-mode-alist) | |
411 (nconc minor-mode-alist | |
412 (list '(isearch-mode isearch-mode)))) | |
413 | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
414 (defvar isearch-mode nil) ;; Name of the minor mode, if non-nil. |
725 | 415 (make-variable-buffer-local 'isearch-mode) |
416 | |
1143
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
417 (define-key global-map "\C-s" 'isearch-forward) |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
418 (define-key esc-map "\C-s" 'isearch-forward-regexp) |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
419 (define-key global-map "\C-r" 'isearch-backward) |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
420 (define-key esc-map "\C-r" 'isearch-backward-regexp) |
0b4552590bb8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1142
diff
changeset
|
421 |
725 | 422 ;;; Entry points to isearch-mode. |
423 | |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
424 (defun isearch-forward (&optional regexp-p no-recursive-edit) |
725 | 425 "\ |
426 Do incremental search forward. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
427 With a prefix argument, do an incremental regular expression search instead. |
725 | 428 \\<isearch-mode-map> |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
429 As you type characters, they add to the search string and are found. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
430 The following non-printing keys are bound in `isearch-mode-map'. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
431 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
432 Type \\[isearch-delete-char] to cancel characters from end of search string. |
725 | 433 Type \\[isearch-exit] to exit, leaving point at location found. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
434 Type LFD (C-j) to match end of line. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
435 Type \\[isearch-repeat-forward] to search again forward,\ |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
436 \\[isearch-repeat-backward] to search again backward. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
437 Type \\[isearch-yank-word] to yank word from buffer onto end of search\ |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
438 string and search for it. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
439 Type \\[isearch-yank-line] to yank rest of line onto end of search string\ |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
440 and search for it. |
23102 | 441 Type \\[isearch-yank-kill] to yank last killed text onto end of search string\ |
442 and search for it. | |
725 | 443 Type \\[isearch-quote-char] to quote control character to search for it. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
444 \\[isearch-abort] while searching or when search has failed cancels input\ |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
445 back to what has |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
446 been found successfully. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
447 \\[isearch-abort] when search is successful aborts and moves point to\ |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
448 starting point. |
725 | 449 |
450 Also supported is a search ring of the previous 16 search strings. | |
451 Type \\[isearch-ring-advance] to search for the next item in the search ring. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
452 Type \\[isearch-ring-retreat] to search for the previous item in the search\ |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
453 ring. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
454 Type \\[isearch-complete] to complete the search string using the search ring. |
725 | 455 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
456 The above keys, bound in `isearch-mode-map', are often controlled by |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
457 options; do M-x apropos on search-.* to find them. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
458 Other control and meta characters terminate the search |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
459 and are then executed normally (depending on `search-exit-option'). |
13112
7c5e73b8aa04
(isearch-forward): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12824
diff
changeset
|
460 Likewise for function keys and mouse button events. |
725 | 461 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
462 If this function is called non-interactively, it does not return to |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
463 the calling function until the search is done." |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
464 |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
465 (interactive "P\np") |
1885
9e79ffe97d5b
Fix minor bugs in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
1883
diff
changeset
|
466 (isearch-mode t (not (null regexp-p)) nil (not no-recursive-edit))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
467 |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
468 (defun isearch-forward-regexp (&optional not-regexp no-recursive-edit) |
725 | 469 "\ |
470 Do incremental search forward for regular expression. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
471 With a prefix argument, do a regular string search instead. |
725 | 472 Like ordinary incremental search except that your input |
473 is treated as a regexp. See \\[isearch-forward] for more info." | |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
474 (interactive "P\np") |
1885
9e79ffe97d5b
Fix minor bugs in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
1883
diff
changeset
|
475 (isearch-mode t (null not-regexp) nil (not no-recursive-edit))) |
725 | 476 |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
477 (defun isearch-backward (&optional regexp-p no-recursive-edit) |
725 | 478 "\ |
479 Do incremental search backward. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
480 With a prefix argument, do a regular expression search instead. |
725 | 481 See \\[isearch-forward] for more information." |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
482 (interactive "P\np") |
1885
9e79ffe97d5b
Fix minor bugs in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
1883
diff
changeset
|
483 (isearch-mode nil (not (null regexp-p)) nil (not no-recursive-edit))) |
725 | 484 |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
485 (defun isearch-backward-regexp (&optional not-regexp no-recursive-edit) |
725 | 486 "\ |
487 Do incremental search backward for regular expression. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
488 With a prefix argument, do a regular string search instead. |
725 | 489 Like ordinary incremental search except that your input |
490 is treated as a regexp. See \\[isearch-forward] for more info." | |
1883
b707809f29bb
(isearch-backward-regexp):
Richard M. Stallman <rms@gnu.org>
parents:
1821
diff
changeset
|
491 (interactive "P\np") |
1885
9e79ffe97d5b
Fix minor bugs in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
1883
diff
changeset
|
492 (isearch-mode nil (null not-regexp) nil (not no-recursive-edit))) |
725 | 493 |
494 | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
495 (defun isearch-mode-help () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
496 (interactive) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
497 (describe-function 'isearch-forward) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
498 (isearch-update)) |
725 | 499 |
500 | |
501 ;; isearch-mode only sets up incremental search for the minor mode. | |
502 ;; All the work is done by the isearch-mode commands. | |
503 | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
504 ;; Not used yet: |
16687
049c87a96dca
Change defconsts to defvars.
Richard M. Stallman <rms@gnu.org>
parents:
16635
diff
changeset
|
505 ;;(defvar isearch-commands '(isearch-forward isearch-backward |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
506 ;; isearch-forward-regexp isearch-backward-regexp) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
507 ;; "List of commands for which isearch-mode does not recursive-edit.") |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
508 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
509 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
510 (defun isearch-mode (forward &optional regexp op-fun recursive-edit word-p) |
11643
5f7440c4c0de
(isearch-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
11579
diff
changeset
|
511 "Start isearch minor mode. Called by `isearch-forward', etc. |
5f7440c4c0de
(isearch-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
11579
diff
changeset
|
512 |
5f7440c4c0de
(isearch-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
11579
diff
changeset
|
513 \\{isearch-mode-map}" |
725 | 514 |
515 ;; Initialize global vars. | |
516 (setq isearch-forward forward | |
517 isearch-regexp regexp | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
518 isearch-word word-p |
725 | 519 isearch-op-fun op-fun |
520 isearch-case-fold-search case-fold-search | |
521 isearch-string "" | |
522 isearch-message "" | |
523 isearch-cmds nil | |
524 isearch-success t | |
525 isearch-wrapped nil | |
526 isearch-barrier (point) | |
527 isearch-adjusted nil | |
528 isearch-yank-flag nil | |
529 isearch-invalid-regexp nil | |
5601
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
530 isearch-within-brackets nil |
9940
4a06fd6dcbff
(isearch-other-meta-char): Delete debugging code.
Richard M. Stallman <rms@gnu.org>
parents:
9935
diff
changeset
|
531 isearch-slow-terminal-mode (and (<= baud-rate search-slow-speed) |
725 | 532 (> (window-height) |
533 (* 4 search-slow-window-lines))) | |
534 isearch-other-end nil | |
535 isearch-small-window nil | |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
536 isearch-just-started t |
725 | 537 |
538 isearch-opoint (point) | |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
539 search-ring-yank-pointer nil |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
540 isearch-opened-overlays nil |
22775
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
541 isearch-input-method-function input-method-function |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
542 isearch-input-method-local-p (local-variable-p 'input-method-function) |
33725
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
543 regexp-search-ring-yank-pointer nil |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
544 |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
545 ;; Save the original value of `minibuffer-message-timeout', and |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
546 ;; set it to nil so that isearch's messages don't get timed out. |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
547 isearch-original-minibuffer-message-timeout minibuffer-message-timeout |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
548 minibuffer-message-timeout nil) |
22775
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
549 |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
550 ;; We must bypass input method while reading key. When a user type |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
551 ;; printable character, appropriate input method is turned on in |
35098
63af2c5d55f9
(isearch-lazy-highlight-remove-overlays): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
35083
diff
changeset
|
552 ;; minibuffer to read multibyte characters. |
22775
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
553 (or isearch-input-method-local-p |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
554 (make-local-variable 'input-method-function)) |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
555 (setq input-method-function nil) |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
556 |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
557 (looking-at "") |
5554
0ac0776c23af
(isearch-mode): If not slow, clear isearch-window-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
5411
diff
changeset
|
558 (setq isearch-window-configuration |
0ac0776c23af
(isearch-mode): If not slow, clear isearch-window-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
5411
diff
changeset
|
559 (if isearch-slow-terminal-mode (current-window-configuration) nil)) |
3476
6c6d1c6afb57
(isearch-mode): Set isearch-window-configuration only if in slow mode.
Richard M. Stallman <rms@gnu.org>
parents:
3385
diff
changeset
|
560 |
16620
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
561 ;; Maybe make minibuffer frame visible and/or raise it. |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
562 (let ((frame (window-frame (minibuffer-window)))) |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
563 (if (not (memq (frame-live-p frame) '(nil t))) |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
564 (progn |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
565 (make-frame-visible frame) |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
566 (if minibuffer-auto-raise |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
567 (raise-frame frame))))) |
c3a095290ec4
(isearch-mode): Maybe make minibuffer frame visible and/or raise it.
Richard M. Stallman <rms@gnu.org>
parents:
16566
diff
changeset
|
568 |
725 | 569 (setq isearch-mode " Isearch") ;; forward? regexp? |
11579
28e4495a9e8f
(isearch-mode, isearch-done): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents:
11526
diff
changeset
|
570 (force-mode-line-update) |
725 | 571 |
572 (isearch-push-state) | |
573 | |
12265
1d2296cfa1e3
(isearch-mode): Use overriding-terminal-local-map, not overriding-local-map.
Karl Heuer <kwzh@gnu.org>
parents:
12106
diff
changeset
|
574 (setq overriding-terminal-local-map isearch-mode-map) |
725 | 575 (isearch-update) |
576 (run-hooks 'isearch-mode-hook) | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
577 |
14939
c0e8ab5d23fc
(isearch-mode): Use add-hook for mouse-leave-buffer-hook.
Richard M. Stallman <rms@gnu.org>
parents:
14288
diff
changeset
|
578 (add-hook 'mouse-leave-buffer-hook 'isearch-done) |
35120
ec6003a7be16
(isearch-old-signal-hook): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
35098
diff
changeset
|
579 (add-hook 'kbd-macro-termination-hook 'isearch-done) |
10257
d530ba7eb471
(isearch-mode): Set mouse-leave-buffer-hook.
Richard M. Stallman <rms@gnu.org>
parents:
10183
diff
changeset
|
580 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
581 ;; isearch-mode can be made modal (in the sense of not returning to |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
582 ;; the calling function until searching is completed) by entering |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
583 ;; a recursive-edit and exiting it when done isearching. |
3385
1ea5ec97ae18
(isearch-mode): If enter recursive-edit,
Richard M. Stallman <rms@gnu.org>
parents:
3250
diff
changeset
|
584 (if recursive-edit |
1ea5ec97ae18
(isearch-mode): If enter recursive-edit,
Richard M. Stallman <rms@gnu.org>
parents:
3250
diff
changeset
|
585 (let ((isearch-recursive-edit t)) |
1ea5ec97ae18
(isearch-mode): If enter recursive-edit,
Richard M. Stallman <rms@gnu.org>
parents:
3250
diff
changeset
|
586 (recursive-edit))) |
8663
3f7bd8c32c9a
(isearch-edit-string): In the isearch-recursive-edit case,
Richard M. Stallman <rms@gnu.org>
parents:
8455
diff
changeset
|
587 isearch-success) |
725 | 588 |
589 | |
590 ;; Some high level utilities. Others below. | |
591 | |
592 (defun isearch-update () | |
593 ;; Called after each command to update the display. | |
9935
a36d24b4b365
(isearch-gnu-emacs-events): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
9934
diff
changeset
|
594 (if (null unread-command-events) |
725 | 595 (progn |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
596 (if (not (input-pending-p)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
597 (isearch-message)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
598 (if (and isearch-slow-terminal-mode |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
599 (not (or isearch-small-window |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
600 (pos-visible-in-window-p)))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
601 (let ((found-point (point))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
602 (setq isearch-small-window t) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
603 (move-to-window-line 0) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
604 (let ((window-min-height 1)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
605 (split-window nil (if (< search-slow-window-lines 0) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
606 (1+ (- search-slow-window-lines)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
607 (- (window-height) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
608 (1+ search-slow-window-lines))))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
609 (if (< search-slow-window-lines 0) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
610 (progn (vertical-motion (- 1 search-slow-window-lines)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
611 (set-window-start (next-window) (point)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
612 (set-window-hscroll (next-window) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
613 (window-hscroll)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
614 (set-window-hscroll (selected-window) 0)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
615 (other-window 1)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
616 (goto-char found-point))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
617 (if isearch-other-end |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
618 (if (< isearch-other-end (point)) ; isearch-forward? |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
619 (isearch-highlight isearch-other-end (point)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
620 (isearch-highlight (point) isearch-other-end)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
621 (isearch-dehighlight nil)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
622 )) |
725 | 623 (setq ;; quit-flag nil not for isearch-mode |
624 isearch-adjusted nil | |
625 isearch-yank-flag nil) | |
29358
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
626 (isearch-lazy-highlight-new-loop) |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
627 ;; We must prevent the point moving to the end of composition when a |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
628 ;; part of the composition has just been searched. |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
629 (setq disable-point-adjustment t)) |
725 | 630 |
8663
3f7bd8c32c9a
(isearch-edit-string): In the isearch-recursive-edit case,
Richard M. Stallman <rms@gnu.org>
parents:
8455
diff
changeset
|
631 (defun isearch-done (&optional nopush edit) |
30476
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
632 (let ((command `(isearch-resume ,isearch-string ,isearch-regexp |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
633 ,isearch-word ,isearch-forward |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
634 ,isearch-message |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
635 ,isearch-case-fold-search))) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
636 (unless (equal (car command-history) command) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
637 (setq command-history (cons command command-history)))) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
638 |
14939
c0e8ab5d23fc
(isearch-mode): Use add-hook for mouse-leave-buffer-hook.
Richard M. Stallman <rms@gnu.org>
parents:
14288
diff
changeset
|
639 (remove-hook 'mouse-leave-buffer-hook 'isearch-done) |
35120
ec6003a7be16
(isearch-old-signal-hook): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
35098
diff
changeset
|
640 (remove-hook 'kbd-macro-termination-hook 'isearch-done) |
35212
0b2d36d2a4ea
(isearch-done): Set isearch-lazy-highlight-start
Gerd Moellmann <gerd@gnu.org>
parents:
35158
diff
changeset
|
641 (setq isearch-lazy-highlight-start nil) |
0b2d36d2a4ea
(isearch-done): Set isearch-lazy-highlight-start
Gerd Moellmann <gerd@gnu.org>
parents:
35158
diff
changeset
|
642 |
725 | 643 ;; Called by all commands that terminate isearch-mode. |
1184 | 644 ;; If NOPUSH is non-nil, we don't push the string on the search ring. |
12265
1d2296cfa1e3
(isearch-mode): Use overriding-terminal-local-map, not overriding-local-map.
Karl Heuer <kwzh@gnu.org>
parents:
12106
diff
changeset
|
645 (setq overriding-terminal-local-map nil) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
646 ;; (setq pre-command-hook isearch-old-pre-command-hook) ; for lemacs |
33725
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
647 (setq minibuffer-message-timeout isearch-original-minibuffer-message-timeout) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
648 (isearch-dehighlight t) |
35012
444b43c38978
Do highlighting of alternative matches all at once,
Richard M. Stallman <rms@gnu.org>
parents:
34603
diff
changeset
|
649 (isearch-lazy-highlight-cleanup isearch-lazy-highlight-cleanup) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
650 (let ((found-start (window-start (selected-window))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
651 (found-point (point))) |
3476
6c6d1c6afb57
(isearch-mode): Set isearch-window-configuration only if in slow mode.
Richard M. Stallman <rms@gnu.org>
parents:
3385
diff
changeset
|
652 (if isearch-window-configuration |
6c6d1c6afb57
(isearch-mode): Set isearch-window-configuration only if in slow mode.
Richard M. Stallman <rms@gnu.org>
parents:
3385
diff
changeset
|
653 (set-window-configuration isearch-window-configuration)) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
654 |
4379
36f6f4b28dde
(isearch-done): Move point (for small window)
Richard M. Stallman <rms@gnu.org>
parents:
4095
diff
changeset
|
655 (if isearch-small-window |
36f6f4b28dde
(isearch-done): Move point (for small window)
Richard M. Stallman <rms@gnu.org>
parents:
4095
diff
changeset
|
656 (goto-char found-point) |
36f6f4b28dde
(isearch-done): Move point (for small window)
Richard M. Stallman <rms@gnu.org>
parents:
4095
diff
changeset
|
657 ;; Exiting the save-window-excursion clobbers window-start; restore it. |
10183
7e28ad5e1042
(isearch-done): Don't print msg about mark if we don't set it.
Richard M. Stallman <rms@gnu.org>
parents:
10166
diff
changeset
|
658 (set-window-start (selected-window) found-start t)) |
4379
36f6f4b28dde
(isearch-done): Move point (for small window)
Richard M. Stallman <rms@gnu.org>
parents:
4095
diff
changeset
|
659 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
660 ;; If there was movement, mark the starting position. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
661 ;; Maybe should test difference between and set mark iff > threshold. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
662 (if (/= (point) isearch-opoint) |
10183
7e28ad5e1042
(isearch-done): Don't print msg about mark if we don't set it.
Richard M. Stallman <rms@gnu.org>
parents:
10166
diff
changeset
|
663 (or (and transient-mark-mode mark-active) |
7e28ad5e1042
(isearch-done): Don't print msg about mark if we don't set it.
Richard M. Stallman <rms@gnu.org>
parents:
10166
diff
changeset
|
664 (progn |
7e28ad5e1042
(isearch-done): Don't print msg about mark if we don't set it.
Richard M. Stallman <rms@gnu.org>
parents:
10166
diff
changeset
|
665 (push-mark isearch-opoint t) |
13682
108ac303b3e5
(isearch-edit-string): Consider the case when
Richard M. Stallman <rms@gnu.org>
parents:
13254
diff
changeset
|
666 (or executing-kbd-macro (> (minibuffer-depth) 0) |
10183
7e28ad5e1042
(isearch-done): Don't print msg about mark if we don't set it.
Richard M. Stallman <rms@gnu.org>
parents:
10166
diff
changeset
|
667 (message "Mark saved where search started")))))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
668 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
669 (setq isearch-mode nil) |
22775
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
670 (if isearch-input-method-local-p |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
671 (setq input-method-function isearch-input-method-function) |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
672 (kill-local-variable 'input-method-function)) |
ede5d8c1f929
(isearch-input-method-function): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22704
diff
changeset
|
673 |
11579
28e4495a9e8f
(isearch-mode, isearch-done): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents:
11526
diff
changeset
|
674 (force-mode-line-update) |
725 | 675 |
24919
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
676 ;; If we ended in the middle of some intangible text, |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
677 ;; move to the further end of that intangible text. |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
678 (let ((after (if (eobp) nil |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
679 (get-text-property (point) 'intangible))) |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
680 (before (if (bobp) nil |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
681 (get-text-property (1- (point)) 'intangible)))) |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
682 (when (and before after (eq before after)) |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
683 (if isearch-forward |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
684 (goto-char (next-single-property-change (point) 'intangible)) |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
685 (goto-char (previous-single-property-change (point) 'intangible))))) |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
686 |
1184 | 687 (if (and (> (length isearch-string) 0) (not nopush)) |
725 | 688 ;; Update the ring data. |
11100
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
689 (isearch-update-ring isearch-string isearch-regexp)) |
725 | 690 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
691 (run-hooks 'isearch-mode-end-hook) |
8663
3f7bd8c32c9a
(isearch-edit-string): In the isearch-recursive-edit case,
Richard M. Stallman <rms@gnu.org>
parents:
8455
diff
changeset
|
692 (and (not edit) isearch-recursive-edit (exit-recursive-edit))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
693 |
11100
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
694 (defun isearch-update-ring (string &optional regexp) |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
695 "Add STRING to the beginning of the search ring. |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
696 REGEXP says which ring to use." |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
697 (if regexp |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
698 (if (or (null regexp-search-ring) |
11526
885c533e786e
(isearch-update-ring): Use STRING arg, not isearch-ring.
Richard M. Stallman <rms@gnu.org>
parents:
11443
diff
changeset
|
699 (not (string= string (car regexp-search-ring)))) |
11100
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
700 (progn |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
701 (setq regexp-search-ring |
11526
885c533e786e
(isearch-update-ring): Use STRING arg, not isearch-ring.
Richard M. Stallman <rms@gnu.org>
parents:
11443
diff
changeset
|
702 (cons string regexp-search-ring)) |
11100
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
703 (if (> (length regexp-search-ring) regexp-search-ring-max) |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
704 (setcdr (nthcdr (1- search-ring-max) regexp-search-ring) |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
705 nil)))) |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
706 (if (or (null search-ring) |
11526
885c533e786e
(isearch-update-ring): Use STRING arg, not isearch-ring.
Richard M. Stallman <rms@gnu.org>
parents:
11443
diff
changeset
|
707 (not (string= string (car search-ring)))) |
11100
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
708 (progn |
11526
885c533e786e
(isearch-update-ring): Use STRING arg, not isearch-ring.
Richard M. Stallman <rms@gnu.org>
parents:
11443
diff
changeset
|
709 (setq search-ring (cons string search-ring)) |
11100
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
710 (if (> (length search-ring) search-ring-max) |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
711 (setcdr (nthcdr (1- search-ring-max) search-ring) nil)))))) |
2ad1ba0ac825
(isearch-update-ring): New subroutine.
Richard M. Stallman <rms@gnu.org>
parents:
11061
diff
changeset
|
712 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
713 ;;; Switching buffers should first terminate isearch-mode. |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
714 ;;; ;; For Emacs 19, the frame switch event is handled. |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
715 ;;; (defun isearch-switch-frame-handler () |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
716 ;;; (interactive) ;; Is this necessary? |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
717 ;;; ;; First terminate isearch-mode. |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
718 ;;; (isearch-done) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
719 ;;; (isearch-clean-overlays) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
720 ;;; (handle-switch-frame (car (cdr last-command-char)))) |
725 | 721 |
722 | |
723 ;; Commands active while inside of the isearch minor mode. | |
724 | |
725 (defun isearch-exit () | |
726 "Exit search normally. | |
727 However, if this is the first command after starting incremental | |
728 search and `search-nonincremental-instead' is non-nil, do a | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
729 nonincremental search instead via `isearch-edit-string'." |
725 | 730 (interactive) |
731 (if (and search-nonincremental-instead | |
732 (= 0 (length isearch-string))) | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
733 (let ((isearch-nonincremental t)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
734 (isearch-edit-string))) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
735 (isearch-done) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
736 (isearch-clean-overlays)) |
725 | 737 |
738 | |
739 (defun isearch-edit-string () | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
740 "Edit the search string in the minibuffer. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
741 The following additional command keys are active while editing. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
742 \\<minibuffer-local-isearch-map> |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
743 \\[exit-minibuffer] to resume incremental searching with the edited string. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
744 \\[isearch-nonincremental-exit-minibuffer] to do one nonincremental search. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
745 \\[isearch-forward-exit-minibuffer] to resume isearching forward. |
7378 | 746 \\[isearch-reverse-exit-minibuffer] to resume isearching backward. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
747 \\[isearch-ring-advance-edit] to replace the search string with the next item in the search ring. |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3526
diff
changeset
|
748 \\[isearch-ring-retreat-edit] to replace the search string with the previous item in the search ring. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
749 \\[isearch-complete-edit] to complete the search string using the search ring. |
7378 | 750 \\<isearch-mode-map> |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
751 If first char entered is \\[isearch-yank-word], then do word search instead." |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
752 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
753 ;; This code is very hairy for several reasons, explained in the code. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
754 ;; Mainly, isearch-mode must be terminated while editing and then restarted. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
755 ;; If there were a way to catch any change of buffer from the minibuffer, |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
756 ;; this could be simplified greatly. |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3526
diff
changeset
|
757 ;; Editing doesn't back up the search point. Should it? |
725 | 758 (interactive) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
759 (condition-case err |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
760 (progn |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
761 (let ((isearch-nonincremental isearch-nonincremental) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
762 |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
763 ;; Locally bind all isearch global variables to protect them |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
764 ;; from recursive isearching. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
765 ;; isearch-string -message and -forward are not bound |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
766 ;; so they may be changed. Instead, save the values. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
767 (isearch-new-string isearch-string) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
768 (isearch-new-message isearch-message) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
769 (isearch-new-forward isearch-forward) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
770 (isearch-new-word isearch-word) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
771 |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
772 (isearch-regexp isearch-regexp) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
773 (isearch-op-fun isearch-op-fun) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
774 (isearch-cmds isearch-cmds) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
775 (isearch-success isearch-success) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
776 (isearch-wrapped isearch-wrapped) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
777 (isearch-barrier isearch-barrier) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
778 (isearch-adjusted isearch-adjusted) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
779 (isearch-yank-flag isearch-yank-flag) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
780 (isearch-invalid-regexp isearch-invalid-regexp) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
781 (isearch-within-brackets isearch-within-brackets) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
782 ;;; Don't bind this. We want isearch-search, below, to set it. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
783 ;;; And the old value won't matter after that. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
784 ;;; (isearch-other-end isearch-other-end) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
785 ;;; Perhaps some of these other variables should be bound for a |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
786 ;;; shorter period, ending before the next isearch-search. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
787 ;;; But there doesn't seem to be a real bug, so let's not risk it now. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
788 (isearch-opoint isearch-opoint) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
789 (isearch-slow-terminal-mode isearch-slow-terminal-mode) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
790 (isearch-small-window isearch-small-window) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
791 (isearch-recursive-edit isearch-recursive-edit) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
792 ;; Save current configuration so we can restore it here. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
793 (isearch-window-configuration (current-window-configuration)) |
33725
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
794 |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
795 ;; Temporarily restore `minibuffer-message-timeout'. |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
796 (minibuffer-message-timeout |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
797 isearch-original-minibuffer-message-timeout) |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
798 (isearch-original-minibuffer-message-timeout |
687b166e4a49
(isearch-original-minibuffer-message-timeout): New var.
Miles Bader <miles@gnu.org>
parents:
33704
diff
changeset
|
799 isearch-original-minibuffer-message-timeout) |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
800 ) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
801 |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
802 ;; Actually terminate isearching until editing is done. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
803 ;; This is so that the user can do anything without failure, |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
804 ;; like switch buffers and start another isearch, and return. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
805 (condition-case err |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
806 (isearch-done t t) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
807 (exit nil)) ; was recursive editing |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
808 |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
809 (isearch-message) ;; for read-char |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
810 (unwind-protect |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
811 (let* (;; Why does following read-char echo? |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
812 ;;(echo-keystrokes 0) ;; not needed with above message |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
813 (e (let ((cursor-in-echo-area t)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
814 (read-event))) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
815 ;; Binding minibuffer-history-symbol to nil is a work-around |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
816 ;; for some incompatibility with gmhist. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
817 (minibuffer-history-symbol) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
818 (message-log-max nil)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
819 ;; If the first character the user types when we prompt them |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
820 ;; for a string is the yank-word character, then go into |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
821 ;; word-search mode. Otherwise unread that character and |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
822 ;; read a key the normal way. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
823 ;; Word search does not apply (yet) to regexp searches, |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
824 ;; no check is made here. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
825 (message (isearch-message-prefix nil nil t)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
826 (if (eq 'isearch-yank-word |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
827 (lookup-key isearch-mode-map (vector e))) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
828 (setq isearch-word t;; so message-prefix is right |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
829 isearch-new-word t) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
830 (cancel-kbd-macro-events) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
831 (isearch-unread e)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
832 (setq cursor-in-echo-area nil) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
833 (setq isearch-new-string |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
834 (let (junk-ring) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
835 (read-from-minibuffer |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
836 (isearch-message-prefix nil nil isearch-nonincremental) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
837 isearch-string |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
838 minibuffer-local-isearch-map nil |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
839 'junk-ring)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
840 isearch-new-message |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
841 (mapconcat 'isearch-text-char-description |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
842 isearch-new-string ""))) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
843 ;; Always resume isearching by restarting it. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
844 (isearch-mode isearch-forward |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
845 isearch-regexp |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
846 isearch-op-fun |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
847 nil |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
848 isearch-word) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
849 |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
850 ;; Copy new local values to isearch globals |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
851 (setq isearch-string isearch-new-string |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
852 isearch-message isearch-new-message |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
853 isearch-forward isearch-new-forward |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
854 isearch-word isearch-new-word)) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
855 |
16737
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
856 ;; Empty isearch-string means use default. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
857 (if (= 0 (length isearch-string)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
858 (setq isearch-string (or (car (if isearch-regexp |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
859 regexp-search-ring |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
860 search-ring)) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
861 "")) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
862 ;; This used to set the last search string, |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
863 ;; but I think it is not right to do that here. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
864 ;; Only the string actually used should be saved. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
865 )) |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
866 |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
867 ;; Push the state as of before this C-s. |
f93f805e86da
(isearch-edit-string): When we try the search
Richard M. Stallman <rms@gnu.org>
parents:
16711
diff
changeset
|
868 (isearch-push-state) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
869 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
870 ;; Reinvoke the pending search. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
871 (isearch-search) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
872 (isearch-update) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
873 (if isearch-nonincremental |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
874 (progn |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
875 ;; (sit-for 1) ;; needed if isearch-done does: (message "") |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
876 (isearch-done)))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
877 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
878 (quit ; handle abort-recursive-edit |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
879 (isearch-abort) ;; outside of let to restore outside global values |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
880 ))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
881 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
882 (defun isearch-nonincremental-exit-minibuffer () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
883 (interactive) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
884 (setq isearch-nonincremental t) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
885 (exit-minibuffer)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
886 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
887 (defun isearch-forward-exit-minibuffer () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
888 (interactive) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
889 (setq isearch-new-forward t) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
890 (exit-minibuffer)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
891 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
892 (defun isearch-reverse-exit-minibuffer () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
893 (interactive) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
894 (setq isearch-new-forward nil) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
895 (exit-minibuffer)) |
725 | 896 |
10117
413a1fd0f7c4
(isearch-cancel): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9940
diff
changeset
|
897 (defun isearch-cancel () |
413a1fd0f7c4
(isearch-cancel): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9940
diff
changeset
|
898 "Terminate the search and go back to the starting point." |
413a1fd0f7c4
(isearch-cancel): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9940
diff
changeset
|
899 (interactive) |
413a1fd0f7c4
(isearch-cancel): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9940
diff
changeset
|
900 (goto-char isearch-opoint) |
413a1fd0f7c4
(isearch-cancel): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9940
diff
changeset
|
901 (isearch-done t) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
902 (isearch-clean-overlays) |
10117
413a1fd0f7c4
(isearch-cancel): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9940
diff
changeset
|
903 (signal 'quit nil)) ; and pass on quit signal |
725 | 904 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
905 (defun isearch-abort () |
13991
0297cd54b530
(isearch-abort, isearch-no-upper-case-p): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
13799
diff
changeset
|
906 "Abort incremental search mode if searching is successful, signaling quit. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
907 Otherwise, revert to previous successful search and continue searching. |
13991
0297cd54b530
(isearch-abort, isearch-no-upper-case-p): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
13799
diff
changeset
|
908 Use `isearch-exit' to quit without signaling." |
725 | 909 (interactive) |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3526
diff
changeset
|
910 ;; (ding) signal instead below, if quitting |
725 | 911 (discard-input) |
912 (if isearch-success | |
913 ;; If search is successful, move back to starting point | |
914 ;; and really do quit. | |
915 (progn (goto-char isearch-opoint) | |
11046
a9045ed63e20
(isearch-abort): Set isearch-success to nil.
Richard M. Stallman <rms@gnu.org>
parents:
10397
diff
changeset
|
916 (setq isearch-success nil) |
1184 | 917 (isearch-done t) ; exit isearch |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
918 (isearch-clean-overlays) |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
919 (signal 'quit nil)) ; and pass on quit signal |
11061
2f41090c58b3
(isearch-abort): Treat "incomplete regexp"
Richard M. Stallman <rms@gnu.org>
parents:
11046
diff
changeset
|
920 ;; If search is failing, or has an incomplete regexp, |
2f41090c58b3
(isearch-abort): Treat "incomplete regexp"
Richard M. Stallman <rms@gnu.org>
parents:
11046
diff
changeset
|
921 ;; rub out until it is once more successful. |
2f41090c58b3
(isearch-abort): Treat "incomplete regexp"
Richard M. Stallman <rms@gnu.org>
parents:
11046
diff
changeset
|
922 (while (or (not isearch-success) isearch-invalid-regexp) |
2f41090c58b3
(isearch-abort): Treat "incomplete regexp"
Richard M. Stallman <rms@gnu.org>
parents:
11046
diff
changeset
|
923 (isearch-pop-state)) |
725 | 924 (isearch-update))) |
925 | |
926 (defun isearch-repeat (direction) | |
927 ;; Utility for isearch-repeat-forward and -backward. | |
928 (if (eq isearch-forward (eq direction 'forward)) | |
929 ;; C-s in forward or C-r in reverse. | |
930 (if (equal isearch-string "") | |
931 ;; If search string is empty, use last one. | |
932 (setq isearch-string | |
933 (or (if isearch-regexp | |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
934 (car regexp-search-ring) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
935 (car search-ring)) |
725 | 936 "") |
937 isearch-message | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
938 (mapconcat 'isearch-text-char-description |
725 | 939 isearch-string "")) |
940 ;; If already have what to search for, repeat it. | |
941 (or isearch-success | |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
942 (progn |
725 | 943 (goto-char (if isearch-forward (point-min) (point-max))) |
944 (setq isearch-wrapped t)))) | |
945 ;; C-s in reverse or C-r in forward, change direction. | |
946 (setq isearch-forward (not isearch-forward))) | |
947 | |
948 (setq isearch-barrier (point)) ; For subsequent \| if regexp. | |
5411
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
949 |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
950 (if (equal isearch-string "") |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
951 (setq isearch-success t) |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
952 (if (and isearch-success (equal (match-end 0) (match-beginning 0)) |
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
953 (not isearch-just-started)) |
725 | 954 ;; If repeating a search that found |
955 ;; an empty string, ensure we advance. | |
5411
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
956 (if (if isearch-forward (eobp) (bobp)) |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
957 ;; If there's nowhere to advance to, fail (and wrap next time). |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
958 (progn |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
959 (setq isearch-success nil) |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
960 (ding)) |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
961 (forward-char (if isearch-forward 1 -1)) |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
962 (isearch-search)) |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
963 (isearch-search))) |
c002b55b9cac
(isearch-repeat): If we matched a null string and there's
Richard M. Stallman <rms@gnu.org>
parents:
5344
diff
changeset
|
964 |
725 | 965 (isearch-push-state) |
966 (isearch-update)) | |
967 | |
968 (defun isearch-repeat-forward () | |
969 "Repeat incremental search forwards." | |
970 (interactive) | |
971 (isearch-repeat 'forward)) | |
972 | |
973 (defun isearch-repeat-backward () | |
974 "Repeat incremental search backwards." | |
975 (interactive) | |
976 (isearch-repeat 'backward)) | |
977 | |
978 (defun isearch-toggle-regexp () | |
979 "Toggle regexp searching on or off." | |
980 ;; The status stack is left unchanged. | |
981 (interactive) | |
982 (setq isearch-regexp (not isearch-regexp)) | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
983 (if isearch-regexp (setq isearch-word nil)) |
725 | 984 (isearch-update)) |
985 | |
7294
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
986 (defun isearch-toggle-case-fold () |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
987 "Toggle case folding in searching on or off." |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
988 (interactive) |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
989 (setq isearch-case-fold-search |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
990 (if isearch-case-fold-search nil 'yes)) |
10397
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
991 (let ((message-log-max nil)) |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
992 (message "%s%s [case %ssensitive]" |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
993 (isearch-message-prefix nil nil isearch-nonincremental) |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
994 isearch-message |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
995 (if isearch-case-fold-search "in" ""))) |
7294
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
996 (setq isearch-adjusted t) |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
997 (sit-for 1) |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
998 (isearch-update)) |
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
999 |
725 | 1000 (defun isearch-delete-char () |
1001 "Discard last input item and move point back. | |
1002 If no previous match was done, just beep." | |
1003 (interactive) | |
1004 (if (null (cdr isearch-cmds)) | |
1005 (ding) | |
1006 (isearch-pop-state)) | |
1007 (isearch-update)) | |
1008 | |
1009 | |
20275
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1010 (defun isearch-yank-string (string) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1011 "Pull STRING into search string." |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1012 ;; Downcase the string if not supposed to case-fold yanked strings. |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1013 (if (and isearch-case-fold-search |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1014 (eq 'not-yanks search-upper-case)) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1015 (setq string (downcase string))) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1016 (if isearch-regexp (setq string (regexp-quote string))) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1017 (setq isearch-string (concat isearch-string string) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1018 isearch-message |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1019 (concat isearch-message |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1020 (mapconcat 'isearch-text-char-description |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1021 string "")) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1022 ;; Don't move cursor in reverse search. |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1023 isearch-yank-flag t) |
725 | 1024 (isearch-search-and-update)) |
1025 | |
4876
8ddcaee25a73
(isearch-yank): Handle `kill' as chunk type.
Richard M. Stallman <rms@gnu.org>
parents:
4840
diff
changeset
|
1026 (defun isearch-yank-kill () |
8ddcaee25a73
(isearch-yank): Handle `kill' as chunk type.
Richard M. Stallman <rms@gnu.org>
parents:
4840
diff
changeset
|
1027 "Pull string from kill ring into search string." |
8ddcaee25a73
(isearch-yank): Handle `kill' as chunk type.
Richard M. Stallman <rms@gnu.org>
parents:
4840
diff
changeset
|
1028 (interactive) |
20275
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1029 (isearch-yank-string (current-kill 0))) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1030 |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1031 (defun isearch-yank-x-selection () |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1032 "Pull current X selection into search string." |
20275
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1033 (interactive) |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1034 (isearch-yank-string (x-get-selection))) |
725 | 1035 |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1036 (defun isearch-mouse-yank (click arg) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1037 "Yank with the mouse in Isearch mode. |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1038 For a click in the echo area, invoke `isearch-yank-x-selection'. |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1039 Otherwise invoke `mouse-yank-at-click'." |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1040 (interactive "e\nP") |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1041 (let ((w (posn-window (event-start click)))) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1042 (if (and (window-minibuffer-p w) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1043 (not (minibuffer-window-active-p w))) ; in echo area |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1044 (isearch-yank-x-selection) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1045 (mouse-yank-at-click click arg)))) |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1046 |
725 | 1047 (defun isearch-yank-word () |
1048 "Pull next word from buffer into search string." | |
1049 (interactive) | |
20275
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1050 (isearch-yank-string |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1051 (save-excursion |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1052 (and (not isearch-forward) isearch-other-end |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1053 (goto-char isearch-other-end)) |
30476
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
1054 (buffer-substring-no-properties |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
1055 (point) (progn (forward-word 1) (point)))))) |
725 | 1056 |
1057 (defun isearch-yank-line () | |
1058 "Pull rest of line from buffer into search string." | |
1059 (interactive) | |
20275
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1060 (isearch-yank-string |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1061 (save-excursion |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1062 (and (not isearch-forward) isearch-other-end |
0e102e83c51d
(isearch-yank-string): New helper function.
Karl Heuer <kwzh@gnu.org>
parents:
20056
diff
changeset
|
1063 (goto-char isearch-other-end)) |
30476
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
1064 (buffer-substring-no-properties (point) (line-end-position))))) |
725 | 1065 |
1066 | |
1067 (defun isearch-search-and-update () | |
1068 ;; Do the search and update the display. | |
1069 (if (and (not isearch-success) | |
1070 ;; unsuccessful regexp search may become | |
1071 ;; successful by addition of characters which | |
1072 ;; make isearch-string valid | |
1073 (not isearch-regexp)) | |
1074 nil | |
1075 ;; In reverse search, adding stuff at | |
1076 ;; the end may cause zero or many more chars to be | |
1077 ;; matched, in the string following point. | |
1078 ;; Allow all those possibilities without moving point as | |
1079 ;; long as the match does not extend past search origin. | |
1080 (if (and (not isearch-forward) (not isearch-adjusted) | |
1081 (condition-case () | |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
1082 (let ((case-fold-search isearch-case-fold-search)) |
23318
102eb438b2e1
(isearch-search-and-update): Properly
Karl Heuer <kwzh@gnu.org>
parents:
23102
diff
changeset
|
1083 (if (and (eq case-fold-search t) search-upper-case) |
102eb438b2e1
(isearch-search-and-update): Properly
Karl Heuer <kwzh@gnu.org>
parents:
23102
diff
changeset
|
1084 (setq case-fold-search |
102eb438b2e1
(isearch-search-and-update): Properly
Karl Heuer <kwzh@gnu.org>
parents:
23102
diff
changeset
|
1085 (isearch-no-upper-case-p isearch-string isearch-regexp))) |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
1086 (looking-at (if isearch-regexp isearch-string |
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
1087 (regexp-quote isearch-string)))) |
725 | 1088 (error nil)) |
21070
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1089 (or isearch-yank-flag |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1090 (<= (match-end 0) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1091 (min isearch-opoint isearch-barrier)))) |
18440
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1092 (progn |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1093 (setq isearch-success t |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1094 isearch-invalid-regexp nil |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1095 isearch-within-brackets nil |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1096 isearch-other-end (match-end 0)) |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1097 (if (and (eq isearch-case-fold-search t) search-upper-case) |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1098 (setq isearch-case-fold-search |
a94d8b31ae3d
(isearch-search-and-update): When a reverse search
Richard M. Stallman <rms@gnu.org>
parents:
18236
diff
changeset
|
1099 (isearch-no-upper-case-p isearch-string isearch-regexp)))) |
725 | 1100 ;; Not regexp, not reverse, or no match at point. |
1101 (if (and isearch-other-end (not isearch-adjusted)) | |
1102 (goto-char (if isearch-forward isearch-other-end | |
1103 (min isearch-opoint | |
1104 isearch-barrier | |
1105 (1+ isearch-other-end))))) | |
1106 (isearch-search) | |
1107 )) | |
1108 (isearch-push-state) | |
1109 (if isearch-op-fun (funcall isearch-op-fun)) | |
1110 (isearch-update)) | |
1111 | |
1112 | |
1113 ;; *, ?, and | chars can make a regexp more liberal. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1114 ;; They can make a regexp match sooner or make it succeed instead of failing. |
725 | 1115 ;; So go back to place last successful search started |
1116 ;; or to the last ^S/^R (barrier), whichever is nearer. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1117 ;; + needs no special handling because the string must match at least once. |
725 | 1118 |
1119 (defun isearch-*-char () | |
1120 "Handle * and ? specially in regexps." | |
1121 (interactive) | |
1122 (if isearch-regexp | |
21070
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1123 (let ((idx (length isearch-string))) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1124 (while (and (> idx 0) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1125 (eq (aref isearch-string (1- idx)) ?\\)) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1126 (setq idx (1- idx))) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1127 (when (= (mod (- (length isearch-string) idx) 2) 0) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1128 (setq isearch-adjusted t) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1129 ;; Get the isearch-other-end from before the last search. |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1130 ;; We want to start from there, |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1131 ;; so that we don't retreat farther than that. |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1132 ;; (car isearch-cmds) is after last search; |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1133 ;; (car (cdr isearch-cmds)) is from before it. |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1134 (let ((cs (nth 5 (car (cdr isearch-cmds))))) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1135 (setq cs (or cs isearch-barrier)) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1136 (goto-char |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1137 (if isearch-forward |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1138 (max cs isearch-barrier) |
f88e08d192a8
(isearch-*-char): Do nothing special if quoted with \.
Richard M. Stallman <rms@gnu.org>
parents:
20812
diff
changeset
|
1139 (min cs isearch-barrier))))))) |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1140 (isearch-process-search-char last-command-char)) |
725 | 1141 |
1142 | |
1143 (defun isearch-|-char () | |
1144 "If in regexp search, jump to the barrier." | |
1145 (interactive) | |
1146 (if isearch-regexp | |
1147 (progn | |
1148 (setq isearch-adjusted t) | |
1149 (goto-char isearch-barrier))) | |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1150 (isearch-process-search-char last-command-char)) |
725 | 1151 |
1152 | |
2572
8784bb8514b0
Replaced all fsets with defaliases.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2533
diff
changeset
|
1153 (defalias 'isearch-other-control-char 'isearch-other-meta-char) |
725 | 1154 |
1155 (defun isearch-other-meta-char () | |
2031
f2dbfd43a1c5
(isearch-unread): Handle multiple args.
Richard M. Stallman <rms@gnu.org>
parents:
1885
diff
changeset
|
1156 "Exit the search normally and reread this key sequence. |
1184 | 1157 But only if `search-exit-option' is non-nil, the default. |
1158 If it is the symbol `edit', the search string is edited in the minibuffer | |
1159 and the meta character is unread so that it applies to editing the string." | |
725 | 1160 (interactive) |
12106
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1161 (let* ((key (this-command-keys)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1162 (main-event (aref key 0)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1163 (keylist (listify-key-sequence key))) |
12716
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1164 (cond ((and (= (length key) 1) |
12824
9302372b1ec1
(isearch-other-meta-char): Avoid bug checking whether
Richard M. Stallman <rms@gnu.org>
parents:
12716
diff
changeset
|
1165 (let ((lookup (lookup-key function-key-map key))) |
14288
dbb66b58d8f4
* isearch.el (isearch-other-meta-char): Avoid error if lookup in
Karl Heuer <kwzh@gnu.org>
parents:
14169
diff
changeset
|
1166 (not (or (null lookup) (integerp lookup) |
dbb66b58d8f4
* isearch.el (isearch-other-meta-char): Avoid error if lookup in
Karl Heuer <kwzh@gnu.org>
parents:
14169
diff
changeset
|
1167 (keymapp lookup))))) |
12716
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1168 ;; Handle a function key that translates into something else. |
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1169 ;; If the key has a global definition too, |
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1170 ;; exit and unread the key itself, so its global definition runs. |
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1171 ;; Otherwise, unread the translation, |
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1172 ;; so that the translated key takes effect within isearch. |
12824
9302372b1ec1
(isearch-other-meta-char): Avoid bug checking whether
Richard M. Stallman <rms@gnu.org>
parents:
12716
diff
changeset
|
1173 (cancel-kbd-macro-events) |
12716
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1174 (if (lookup-key global-map key) |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
1175 (progn |
12716
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1176 (isearch-done) |
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1177 (apply 'isearch-unread keylist)) |
29358
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1178 (setq keylist |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1179 (listify-key-sequence (lookup-key function-key-map key))) |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1180 (while keylist |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1181 (setq key (car keylist)) |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1182 ;; If KEY is a printing char, we handle it here |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1183 ;; directly to avoid the input method and keyboard |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1184 ;; coding system translating it. |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1185 (if (and (integerp key) |
29377
b614192b22ce
(isearch-other-meta-char): Fix previous change.
Kenichi Handa <handa@m17n.org>
parents:
29373
diff
changeset
|
1186 (>= key ?\ ) (/= key 127) (< key 256)) |
29358
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1187 (progn |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1188 (isearch-process-search-char key) |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1189 (setq keylist (cdr keylist))) |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1190 ;; As the remaining keys in KEYLIST can't be handled |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1191 ;; here, we must reread them. |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1192 (apply 'isearch-unread keylist) |
9a6d0cf1e313
(isearch-update): Set disable-point-adjustment to t
Kenichi Handa <handa@m17n.org>
parents:
29325
diff
changeset
|
1193 (setq keylist nil))))) |
12716
cadb9c7a1501
(isearch-mode-map): Don't bind tab, return, kp-N, etc.
Richard M. Stallman <rms@gnu.org>
parents:
12284
diff
changeset
|
1194 ( |
12106
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1195 ;; Handle an undefined shifted control character |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1196 ;; by downshifting it if that makes it defined. |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1197 ;; (As read-key-sequence would normally do, |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1198 ;; if we didn't have a default definition.) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1199 (let ((mods (event-modifiers main-event))) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1200 (and (integerp main-event) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1201 (memq 'shift mods) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1202 (memq 'control mods) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1203 (lookup-key isearch-mode-map |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1204 (let ((copy (copy-sequence key))) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1205 (aset copy 0 |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1206 (- main-event (- ?\C-\S-a ?\C-a))) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1207 copy) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1208 nil))) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1209 (setcar keylist (- main-event (- ?\C-\S-a ?\C-a))) |
12824
9302372b1ec1
(isearch-other-meta-char): Avoid bug checking whether
Richard M. Stallman <rms@gnu.org>
parents:
12716
diff
changeset
|
1210 (cancel-kbd-macro-events) |
12106
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1211 (apply 'isearch-unread keylist)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1212 ((eq search-exit-option 'edit) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1213 (apply 'isearch-unread keylist) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1214 (isearch-edit-string)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1215 (search-exit-option |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1216 (let (window) |
12824
9302372b1ec1
(isearch-other-meta-char): Avoid bug checking whether
Richard M. Stallman <rms@gnu.org>
parents:
12716
diff
changeset
|
1217 (cancel-kbd-macro-events) |
12106
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1218 (apply 'isearch-unread keylist) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1219 ;; Properly handle scroll-bar and mode-line clicks |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1220 ;; for which a dummy prefix event was generated as (aref key 0). |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1221 (and (> (length key) 1) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1222 (symbolp (aref key 0)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1223 (listp (aref key 1)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1224 (not (numberp (posn-point (event-start (aref key 1))))) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1225 ;; Convert the event back into its raw form, |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1226 ;; with the dummy prefix implicit in the mouse event, |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1227 ;; so it will get split up once again. |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1228 (progn (setq unread-command-events |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1229 (cdr unread-command-events)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1230 (setq main-event (car unread-command-events)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1231 (setcar (cdr (event-start main-event)) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1232 (car (nth 1 (event-start main-event)))))) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1233 ;; If we got a mouse click, maybe it was read with the buffer |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1234 ;; it was clicked on. If so, that buffer, not the current one, |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1235 ;; is in isearch mode. So end the search in that buffer. |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1236 (if (and (listp main-event) |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1237 (setq window (posn-window (event-start main-event))) |
19127
ce44f2008a22
(isearch-other-meta-char): Don't switch windows to exit
Richard M. Stallman <rms@gnu.org>
parents:
19069
diff
changeset
|
1238 (windowp window) |
ce44f2008a22
(isearch-other-meta-char): Don't switch windows to exit
Richard M. Stallman <rms@gnu.org>
parents:
19069
diff
changeset
|
1239 (or (> (minibuffer-depth) 0) |
ce44f2008a22
(isearch-other-meta-char): Don't switch windows to exit
Richard M. Stallman <rms@gnu.org>
parents:
19069
diff
changeset
|
1240 (not (window-minibuffer-p window)))) |
12106
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1241 (save-excursion |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1242 (set-buffer (window-buffer window)) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1243 (isearch-done) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1244 (isearch-clean-overlays)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1245 (isearch-done) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1246 (isearch-clean-overlays)))) |
12106
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1247 (t;; otherwise nil |
3ae851bcd773
(isearch-other-meta-char): Try downshifting
Karl Heuer <kwzh@gnu.org>
parents:
11969
diff
changeset
|
1248 (isearch-process-search-string key key))))) |
725 | 1249 |
1250 (defun isearch-quote-char () | |
1251 "Quote special characters for incremental search." | |
1252 (interactive) | |
19146
0f89b8543e19
(isearch-quote-char): Fix handling of control
Richard M. Stallman <rms@gnu.org>
parents:
19127
diff
changeset
|
1253 (let ((char (read-quoted-char (isearch-message t)))) |
24921
036b2fb4944f
(isearch-quote-char): Call unibyte-char-to-multibyte for \200...\240 also.
Richard M. Stallman <rms@gnu.org>
parents:
24919
diff
changeset
|
1254 ;; Assume character codes 0200 - 0377 stand for characters in some |
24788
1d21edd48d82
(isearch-quote-char): Don't assume character codes
Kenichi Handa <handa@m17n.org>
parents:
23318
diff
changeset
|
1255 ;; single-byte character set, and convert them to Emacs |
1d21edd48d82
(isearch-quote-char): Don't assume character codes
Kenichi Handa <handa@m17n.org>
parents:
23318
diff
changeset
|
1256 ;; characters. |
19146
0f89b8543e19
(isearch-quote-char): Fix handling of control
Richard M. Stallman <rms@gnu.org>
parents:
19127
diff
changeset
|
1257 (and enable-multibyte-characters |
24921
036b2fb4944f
(isearch-quote-char): Call unibyte-char-to-multibyte for \200...\240 also.
Richard M. Stallman <rms@gnu.org>
parents:
24919
diff
changeset
|
1258 (>= char ?\200) |
19146
0f89b8543e19
(isearch-quote-char): Fix handling of control
Richard M. Stallman <rms@gnu.org>
parents:
19127
diff
changeset
|
1259 (<= char ?\377) |
24788
1d21edd48d82
(isearch-quote-char): Don't assume character codes
Kenichi Handa <handa@m17n.org>
parents:
23318
diff
changeset
|
1260 (setq char (unibyte-char-to-multibyte char))) |
19146
0f89b8543e19
(isearch-quote-char): Fix handling of control
Richard M. Stallman <rms@gnu.org>
parents:
19127
diff
changeset
|
1261 (isearch-process-search-char char))) |
725 | 1262 |
1263 (defun isearch-return-char () | |
1264 "Convert return into newline for incremental search. | |
1265 Obsolete." | |
1266 (interactive) | |
1267 (isearch-process-search-char ?\n)) | |
1268 | |
1269 (defun isearch-printing-char () | |
2533 | 1270 "Add this ordinary printing character to the search string and search." |
725 | 1271 (interactive) |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1272 (let ((char last-command-char)) |
20056
dd567e1fddd5
(isearch-printing-char): Change S-SPC to SPC.
Karl Heuer <kwzh@gnu.org>
parents:
19769
diff
changeset
|
1273 (if (= char ?\S-\ ) |
dd567e1fddd5
(isearch-printing-char): Change S-SPC to SPC.
Karl Heuer <kwzh@gnu.org>
parents:
19769
diff
changeset
|
1274 (setq char ?\ )) |
19587
7d59cb04d2d9
(isearch-printing-char): Handle nonascii-insert-offset.
Richard M. Stallman <rms@gnu.org>
parents:
19408
diff
changeset
|
1275 (if (and enable-multibyte-characters |
7d59cb04d2d9
(isearch-printing-char): Handle nonascii-insert-offset.
Richard M. Stallman <rms@gnu.org>
parents:
19408
diff
changeset
|
1276 (>= char ?\200) |
7d59cb04d2d9
(isearch-printing-char): Handle nonascii-insert-offset.
Richard M. Stallman <rms@gnu.org>
parents:
19408
diff
changeset
|
1277 (<= char ?\377)) |
29325
e67ef9cdfe51
(isearch-printing-char): If keyboard coding system is
Kenichi Handa <handa@m17n.org>
parents:
28504
diff
changeset
|
1278 (if (keyboard-coding-system) |
e67ef9cdfe51
(isearch-printing-char): If keyboard coding system is
Kenichi Handa <handa@m17n.org>
parents:
28504
diff
changeset
|
1279 (isearch-process-search-multibyte-characters char) |
e67ef9cdfe51
(isearch-printing-char): If keyboard coding system is
Kenichi Handa <handa@m17n.org>
parents:
28504
diff
changeset
|
1280 (isearch-process-search-char (unibyte-char-to-multibyte char))) |
19587
7d59cb04d2d9
(isearch-printing-char): Handle nonascii-insert-offset.
Richard M. Stallman <rms@gnu.org>
parents:
19408
diff
changeset
|
1281 (if current-input-method |
7d59cb04d2d9
(isearch-printing-char): Handle nonascii-insert-offset.
Richard M. Stallman <rms@gnu.org>
parents:
19408
diff
changeset
|
1282 (isearch-process-search-multibyte-characters char) |
7d59cb04d2d9
(isearch-printing-char): Handle nonascii-insert-offset.
Richard M. Stallman <rms@gnu.org>
parents:
19408
diff
changeset
|
1283 (isearch-process-search-char char))))) |
725 | 1284 |
1285 (defun isearch-whitespace-chars () | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1286 "Match all whitespace chars, if in regexp mode. |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1287 If you want to search for just a space, type \\[quoted-insert] SPC." |
725 | 1288 (interactive) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1289 (if isearch-regexp |
15858
946a4fb104ef
(isearch-whitespace-chars): If isearch-invalid-regexp, insert just a space.
Richard M. Stallman <rms@gnu.org>
parents:
14939
diff
changeset
|
1290 (if (and search-whitespace-regexp (not isearch-within-brackets) |
946a4fb104ef
(isearch-whitespace-chars): If isearch-invalid-regexp, insert just a space.
Richard M. Stallman <rms@gnu.org>
parents:
14939
diff
changeset
|
1291 (not isearch-invalid-regexp)) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1292 (isearch-process-search-string search-whitespace-regexp " ") |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1293 (isearch-printing-char)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1294 (progn |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3526
diff
changeset
|
1295 ;; This way of doing word search doesn't correctly extend current search. |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1296 ;; (setq isearch-word t) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1297 ;; (setq isearch-adjusted t) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1298 ;; (goto-char isearch-barrier) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1299 (isearch-printing-char)))) |
725 | 1300 |
1301 (defun isearch-process-search-char (char) | |
1302 ;; Append the char to the search string, update the message and re-search. | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1303 (isearch-process-search-string |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1304 (char-to-string char) |
24924
ef8649234d91
(isearch-process-search-char): Write octal 200 correctly.
Richard M. Stallman <rms@gnu.org>
parents:
24921
diff
changeset
|
1305 (if (>= char ?\200) |
17794
2fc1e3833259
(isearch-process-search-char): Use multibyte
Richard M. Stallman <rms@gnu.org>
parents:
17781
diff
changeset
|
1306 (char-to-string char) |
2fc1e3833259
(isearch-process-search-char): Use multibyte
Richard M. Stallman <rms@gnu.org>
parents:
17781
diff
changeset
|
1307 (isearch-text-char-description char)))) |
725 | 1308 |
1309 (defun isearch-process-search-string (string message) | |
1310 (setq isearch-string (concat isearch-string string) | |
1311 isearch-message (concat isearch-message message)) | |
1312 (isearch-search-and-update)) | |
1313 | |
1314 | |
1315 ;; Search Ring | |
1316 | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1317 (defun isearch-ring-adjust1 (advance) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1318 ;; Helper for isearch-ring-adjust |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1319 (let* ((ring (if isearch-regexp regexp-search-ring search-ring)) |
725 | 1320 (length (length ring)) |
1321 (yank-pointer-name (if isearch-regexp | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1322 'regexp-search-ring-yank-pointer |
725 | 1323 'search-ring-yank-pointer)) |
1324 (yank-pointer (eval yank-pointer-name))) | |
1325 (if (zerop length) | |
1326 () | |
1327 (set yank-pointer-name | |
1328 (setq yank-pointer | |
4512
ed1f6abba5c5
(isearch-ring-adjust1, isearch-ring-advance-edit): Replace `%' by `mod' and simplify.
Paul Eggert <eggert@twinsun.com>
parents:
4379
diff
changeset
|
1329 (mod (+ (or yank-pointer 0) |
ed1f6abba5c5
(isearch-ring-adjust1, isearch-ring-advance-edit): Replace `%' by `mod' and simplify.
Paul Eggert <eggert@twinsun.com>
parents:
4379
diff
changeset
|
1330 (if advance -1 1)) |
ed1f6abba5c5
(isearch-ring-adjust1, isearch-ring-advance-edit): Replace `%' by `mod' and simplify.
Paul Eggert <eggert@twinsun.com>
parents:
4379
diff
changeset
|
1331 length))) |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1332 (setq isearch-string (nth yank-pointer ring) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1333 isearch-message (mapconcat 'isearch-text-char-description |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1334 isearch-string ""))))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1335 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1336 (defun isearch-ring-adjust (advance) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1337 ;; Helper for isearch-ring-advance and isearch-ring-retreat |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1338 (isearch-ring-adjust1 advance) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1339 (if search-ring-update |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1340 (progn |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1341 (isearch-search) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1342 (isearch-update)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1343 (isearch-edit-string) |
16711
890b229ea0c7
(isearch-ring-adjust): Don't pop the state at the start.
Richard M. Stallman <rms@gnu.org>
parents:
16687
diff
changeset
|
1344 ) |
890b229ea0c7
(isearch-ring-adjust): Don't pop the state at the start.
Richard M. Stallman <rms@gnu.org>
parents:
16687
diff
changeset
|
1345 (isearch-push-state)) |
725 | 1346 |
1347 (defun isearch-ring-advance () | |
1348 "Advance to the next search string in the ring." | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1349 ;; This could be more general to handle a prefix arg, but who would use it. |
725 | 1350 (interactive) |
1351 (isearch-ring-adjust 'advance)) | |
1352 | |
1353 (defun isearch-ring-retreat () | |
1354 "Retreat to the previous search string in the ring." | |
1355 (interactive) | |
1356 (isearch-ring-adjust nil)) | |
1357 | |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1358 (defun isearch-ring-advance-edit (n) |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1359 "Insert the next element of the search history into the minibuffer. |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1360 With prefix arg N, insert the Nth element." |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1361 (interactive "p") |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1362 (let* ((yank-pointer-name (if isearch-regexp |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1363 'regexp-search-ring-yank-pointer |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1364 'search-ring-yank-pointer)) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1365 (yank-pointer (eval yank-pointer-name)) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1366 (ring (if isearch-regexp regexp-search-ring search-ring)) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1367 (length (length ring))) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1368 (if (zerop length) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1369 () |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1370 (set yank-pointer-name |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1371 (setq yank-pointer |
4512
ed1f6abba5c5
(isearch-ring-adjust1, isearch-ring-advance-edit): Replace `%' by `mod' and simplify.
Paul Eggert <eggert@twinsun.com>
parents:
4379
diff
changeset
|
1372 (mod (- (or yank-pointer 0) n) |
ed1f6abba5c5
(isearch-ring-adjust1, isearch-ring-advance-edit): Replace `%' by `mod' and simplify.
Paul Eggert <eggert@twinsun.com>
parents:
4379
diff
changeset
|
1373 length))) |
725 | 1374 |
26350
3b7a732fbde2
(isearch-ring-advance-edit, isearch-complete-edit):
Gerd Moellmann <gerd@gnu.org>
parents:
26335
diff
changeset
|
1375 (delete-field) |
1184 | 1376 (insert (nth yank-pointer ring)) |
1380
a7003e65eb66
(isearch-ring-advance-edit): Delete spurious `)'.
Richard M. Stallman <rms@gnu.org>
parents:
1184
diff
changeset
|
1377 (goto-char (point-max))))) |
725 | 1378 |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1379 (defun isearch-ring-retreat-edit (n) |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1380 "Insert the previous element of the search history into the minibuffer. |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1381 With prefix arg N, insert the Nth element." |
1146
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1382 (interactive "p") |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1383 (isearch-ring-advance-edit (- n))) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1384 |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1385 ;;(defun isearch-ring-adjust-edit (advance) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1386 ;; "Use the next or previous search string in the ring while in minibuffer." |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1387 ;; (isearch-ring-adjust1 advance) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1388 ;; (erase-buffer) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1389 ;; (insert isearch-string)) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1390 |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1391 ;;(defun isearch-ring-advance-edit () |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1392 ;; (interactive) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1393 ;; (isearch-ring-adjust-edit 'advance)) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1394 |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1395 ;;(defun isearch-ring-retreat-edit () |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1396 ;; "Retreat to the previous search string in the ring while in the minibuffer." |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1397 ;; (interactive) |
02b2f761f9df
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1143
diff
changeset
|
1398 ;; (isearch-ring-adjust-edit nil)) |
725 | 1399 |
1400 | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1401 (defun isearch-complete1 () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1402 ;; Helper for isearch-complete and isearch-complete-edit |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1403 ;; Return t if completion OK, nil if no completion exists. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1404 (let* ((ring (if isearch-regexp regexp-search-ring search-ring)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1405 (alist (mapcar (function (lambda (string) (list string))) ring)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1406 (completion-ignore-case case-fold-search) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1407 (completion (try-completion isearch-string alist))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1408 (cond |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1409 ((eq completion t) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1410 ;; isearch-string stays the same |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1411 t) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1412 ((or completion ; not nil, must be a string |
13991
0297cd54b530
(isearch-abort, isearch-no-upper-case-p): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
13799
diff
changeset
|
1413 (= 0 (length isearch-string))) ; shouldn't have to say this |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1414 (if (equal completion isearch-string) ;; no extension? |
16566
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1415 (progn |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1416 (if completion-auto-help |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1417 (with-output-to-temp-buffer "*Isearch completions*" |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1418 (display-completion-list |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1419 (all-completions isearch-string alist)))) |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1420 t) |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1421 (and completion |
45e694f5babe
(isearch-complete1): If no completion,
Richard M. Stallman <rms@gnu.org>
parents:
16495
diff
changeset
|
1422 (setq isearch-string completion)))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1423 (t |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1424 (message "No completion") ; waits a second if in minibuffer |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1425 nil)))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1426 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1427 (defun isearch-complete () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1428 "Complete the search string from the strings on the search ring. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1429 The completed string is then editable in the minibuffer. |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1430 If there is no completion possible, say so and continue searching." |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1431 (interactive) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1432 (if (isearch-complete1) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1433 (isearch-edit-string) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1434 ;; else |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1435 (sit-for 1) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1436 (isearch-update))) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1437 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1438 (defun isearch-complete-edit () |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1439 "Same as `isearch-complete' except in the minibuffer." |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1440 (interactive) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1441 (setq isearch-string (buffer-string)) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1442 (if (isearch-complete1) |
725 | 1443 (progn |
26350
3b7a732fbde2
(isearch-ring-advance-edit, isearch-complete-edit):
Gerd Moellmann <gerd@gnu.org>
parents:
26335
diff
changeset
|
1444 (delete-field) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1445 (insert isearch-string)))) |
725 | 1446 |
1447 | |
1448 ;; The search status stack (and isearch window-local variables, not used). | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1449 ;; Need a structure for this. |
725 | 1450 |
1451 (defun isearch-top-state () | |
1452 (let ((cmd (car isearch-cmds))) | |
1453 (setq isearch-string (car cmd) | |
1454 isearch-message (car (cdr cmd)) | |
1455 isearch-success (nth 3 cmd) | |
1456 isearch-forward (nth 4 cmd) | |
1457 isearch-other-end (nth 5 cmd) | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1458 isearch-word (nth 6 cmd) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1459 isearch-invalid-regexp (nth 7 cmd) |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1460 isearch-wrapped (nth 8 cmd) |
5601
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
1461 isearch-barrier (nth 9 cmd) |
5637
b0d6fc7f5e65
(isearch-push-state): Save isearch-case-fold-search.
Richard M. Stallman <rms@gnu.org>
parents:
5615
diff
changeset
|
1462 isearch-within-brackets (nth 10 cmd) |
b0d6fc7f5e65
(isearch-push-state): Save isearch-case-fold-search.
Richard M. Stallman <rms@gnu.org>
parents:
5615
diff
changeset
|
1463 isearch-case-fold-search (nth 11 cmd)) |
725 | 1464 (goto-char (car (cdr (cdr cmd)))))) |
1465 | |
1466 (defun isearch-pop-state () | |
1467 (setq isearch-cmds (cdr isearch-cmds)) | |
35083
cfac1ece4f23
(isearch-old-signal-hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35012
diff
changeset
|
1468 (isearch-top-state)) |
725 | 1469 |
1470 (defun isearch-push-state () | |
1471 (setq isearch-cmds | |
1472 (cons (list isearch-string isearch-message (point) | |
1473 isearch-success isearch-forward isearch-other-end | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1474 isearch-word |
5601
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
1475 isearch-invalid-regexp isearch-wrapped isearch-barrier |
5637
b0d6fc7f5e65
(isearch-push-state): Save isearch-case-fold-search.
Richard M. Stallman <rms@gnu.org>
parents:
5615
diff
changeset
|
1476 isearch-within-brackets isearch-case-fold-search) |
725 | 1477 isearch-cmds))) |
1478 | |
1479 | |
1480 ;; Message string | |
1481 | |
1482 (defun isearch-message (&optional c-q-hack ellipsis) | |
1483 ;; Generate and print the message string. | |
1484 (let ((cursor-in-echo-area ellipsis) | |
1485 (m (concat | |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1486 (isearch-message-prefix c-q-hack ellipsis isearch-nonincremental) |
725 | 1487 isearch-message |
1488 (isearch-message-suffix c-q-hack ellipsis) | |
1489 ))) | |
10397
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
1490 (if c-q-hack |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
1491 m |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
1492 (let ((message-log-max nil)) |
8fe0c72ba336
(isearch-edit-string): Disable message logging.
Karl Heuer <kwzh@gnu.org>
parents:
10257
diff
changeset
|
1493 (message "%s" m))))) |
725 | 1494 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1495 (defun isearch-message-prefix (&optional c-q-hack ellipsis nonincremental) |
725 | 1496 ;; If about to search, and previous search regexp was invalid, |
1497 ;; check that it still is. If it is valid now, | |
1498 ;; let the message we display while searching say that it is valid. | |
1499 (and isearch-invalid-regexp ellipsis | |
1500 (condition-case () | |
1501 (progn (re-search-forward isearch-string (point) t) | |
7378 | 1502 (setq isearch-invalid-regexp nil |
1503 isearch-within-brackets nil)) | |
725 | 1504 (error nil))) |
1505 ;; If currently failing, display no ellipsis. | |
1506 (or isearch-success (setq ellipsis nil)) | |
1507 (let ((m (concat (if isearch-success "" "failing ") | |
13254
7ed0775e99af
(isearch-message-prefix):
Richard M. Stallman <rms@gnu.org>
parents:
13112
diff
changeset
|
1508 (if (and isearch-wrapped |
7ed0775e99af
(isearch-message-prefix):
Richard M. Stallman <rms@gnu.org>
parents:
13112
diff
changeset
|
1509 (if isearch-forward |
7ed0775e99af
(isearch-message-prefix):
Richard M. Stallman <rms@gnu.org>
parents:
13112
diff
changeset
|
1510 (> (point) isearch-opoint) |
7ed0775e99af
(isearch-message-prefix):
Richard M. Stallman <rms@gnu.org>
parents:
13112
diff
changeset
|
1511 (< (point) isearch-opoint))) |
7ed0775e99af
(isearch-message-prefix):
Richard M. Stallman <rms@gnu.org>
parents:
13112
diff
changeset
|
1512 "over") |
725 | 1513 (if isearch-wrapped "wrapped ") |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1514 (if isearch-word "word " "") |
725 | 1515 (if isearch-regexp "regexp " "") |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1516 (if nonincremental "search" "I-search") |
17006 | 1517 (if isearch-forward "" " backward") |
19408
7457b6e05a60
(isearch-multibyte-characters-flag): Deleted.
Kenichi Handa <handa@m17n.org>
parents:
19146
diff
changeset
|
1518 (if current-input-method |
7457b6e05a60
(isearch-multibyte-characters-flag): Deleted.
Kenichi Handa <handa@m17n.org>
parents:
19146
diff
changeset
|
1519 (concat " [" current-input-method-title "]: ") |
17006 | 1520 ": ") |
725 | 1521 ))) |
29373
d74da5c22ef9
(isearch-highlight): Turn internal-find-face into facep.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29358
diff
changeset
|
1522 (concat (upcase (substring m 0 1)) (substring m 1)))) |
725 | 1523 |
1524 | |
1525 (defun isearch-message-suffix (&optional c-q-hack ellipsis) | |
1526 (concat (if c-q-hack "^Q" "") | |
1527 (if isearch-invalid-regexp | |
1528 (concat " [" isearch-invalid-regexp "]") | |
1529 ""))) | |
1530 | |
1531 | |
1532 ;;; Searching | |
1533 | |
1534 (defun isearch-search () | |
1535 ;; Do the search with the current search string. | |
1536 (isearch-message nil t) | |
7294
4ff0c1e7c8e2
(isearch-case-fold-search): new possible value `yes'
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1537 (if (and (eq isearch-case-fold-search t) search-upper-case) |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1538 (setq isearch-case-fold-search |
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1539 (isearch-no-upper-case-p isearch-string isearch-regexp))) |
725 | 1540 (condition-case lossage |
18866
04d56f77da0d
(search-invisible): Fix typo.
Richard M. Stallman <rms@gnu.org>
parents:
18783
diff
changeset
|
1541 (let ((inhibit-point-motion-hooks search-invisible) |
04d56f77da0d
(search-invisible): Fix typo.
Richard M. Stallman <rms@gnu.org>
parents:
18783
diff
changeset
|
1542 (inhibit-quit nil) |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1543 (case-fold-search isearch-case-fold-search) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1544 (retry t)) |
725 | 1545 (if isearch-regexp (setq isearch-invalid-regexp nil)) |
5601
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
1546 (setq isearch-within-brackets nil) |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1547 (while retry |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1548 (setq isearch-success |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1549 (funcall |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1550 (cond (isearch-word |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1551 (if isearch-forward |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1552 'word-search-forward 'word-search-backward)) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1553 (isearch-regexp |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1554 (if isearch-forward |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1555 're-search-forward 're-search-backward)) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1556 (t |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1557 (if isearch-forward 'search-forward 'search-backward))) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1558 isearch-string nil t)) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1559 ;; Clear RETRY unless we matched some invisible text |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1560 ;; and we aren't supposed to do that. |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1561 (if (or (eq search-invisible t) |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1562 (not isearch-success) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1563 (bobp) (eobp) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1564 (= (match-beginning 0) (match-end 0)) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1565 (not (isearch-range-invisible |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1566 (match-beginning 0) (match-end 0)))) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1567 (setq retry nil))) |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
1568 (setq isearch-just-started nil) |
725 | 1569 (if isearch-success |
1570 (setq isearch-other-end | |
1571 (if isearch-forward (match-beginning 0) (match-end 0))))) | |
1572 | |
5196 | 1573 (quit (isearch-unread ?\C-g) |
725 | 1574 (setq isearch-success nil)) |
1575 | |
1576 (invalid-regexp | |
1577 (setq isearch-invalid-regexp (car (cdr lossage))) | |
5601
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
1578 (setq isearch-within-brackets (string-match "\\`Unmatched \\[" |
8353962cfd74
SPC is not special in regexp within brackets.
Richard M. Stallman <rms@gnu.org>
parents:
5554
diff
changeset
|
1579 isearch-invalid-regexp)) |
725 | 1580 (if (string-match |
1581 "\\`Premature \\|\\`Unmatched \\|\\`Invalid " | |
1582 isearch-invalid-regexp) | |
1534
dd292c7ef749
(isearch-search): Handle all sorts of errors from regexp search.
Richard M. Stallman <rms@gnu.org>
parents:
1480
diff
changeset
|
1583 (setq isearch-invalid-regexp "incomplete input"))) |
dd292c7ef749
(isearch-search): Handle all sorts of errors from regexp search.
Richard M. Stallman <rms@gnu.org>
parents:
1480
diff
changeset
|
1584 (error |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1585 ;; stack overflow in regexp search. |
35234
c6a74e51d185
(isearch-search): In the condition-case handler for
Gerd Moellmann <gerd@gnu.org>
parents:
35225
diff
changeset
|
1586 (setq isearch-invalid-regexp (format "%s" lossage)))) |
725 | 1587 |
1588 (if isearch-success | |
1589 nil | |
1590 ;; Ding if failed this time after succeeding last time. | |
1591 (and (nth 3 (car isearch-cmds)) | |
1592 (ding)) | |
1593 (goto-char (nth 2 (car isearch-cmds))))) | |
1594 | |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1595 |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1596 ;;; Called when opening an overlay, and we are still in isearch. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1597 (defun isearch-open-overlay-temporary (ov) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1598 (if (not (null (overlay-get ov 'isearch-open-invisible-temporary))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1599 ;; Some modes would want to open the overlays temporary during |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1600 ;; isearch in their own way, they should set the |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1601 ;; `isearch-open-invisible-temporary' to a function doing this. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1602 (funcall (overlay-get ov 'isearch-open-invisible-temporary) ov nil) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1603 ;; Store the values for the `invisible' and `intangible' |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1604 ;; properties, and then set them to nil. This way the text hidden |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1605 ;; by this overlay becomes visible. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1606 |
35098
63af2c5d55f9
(isearch-lazy-highlight-remove-overlays): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
35083
diff
changeset
|
1607 ;; Do we really need to set the `intangible' property to t? Can we |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1608 ;; have the point inside an overlay with an `intangible' property? |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1609 ;; In 19.34 this does not exist so I cannot test it. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1610 (overlay-put ov 'isearch-invisible (overlay-get ov 'invisible)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1611 (overlay-put ov 'isearch-intangible (overlay-get ov 'intangible)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1612 (overlay-put ov 'invisible nil) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1613 (overlay-put ov 'intangible nil))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1614 |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1615 |
25823
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1616 ;;; This is called at the end of isearch. It will open the overlays |
4cecefebde6f
(isearch): Add :links in defgroup.
Dave Love <fx@gnu.org>
parents:
25644
diff
changeset
|
1617 ;;; that contain the latest match. Obviously in case of a C-g the |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1618 ;;; point returns to the original location which surely is not contain |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1619 ;;; in any of these overlays, se we are safe in this case too. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1620 (defun isearch-open-necessary-overlays (ov) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1621 (let ((inside-overlay (and (> (point) (overlay-start ov)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1622 (< (point) (overlay-end ov)))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1623 ;; If this exists it means that the overlay was opened using |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1624 ;; this function, not by us tweaking the overlay properties. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1625 (fct-temp (overlay-get ov 'isearch-open-invisible-temporary))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1626 (when (or inside-overlay (not fct-temp)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1627 ;; restore the values for the `invisible' and `intangible' |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1628 ;; properties |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1629 (overlay-put ov 'invisible (overlay-get ov 'isearch-invisible)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1630 (overlay-put ov 'intangible (overlay-get ov 'isearch-intangible)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1631 (overlay-put ov 'isearch-invisible nil) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1632 (overlay-put ov 'isearch-intangible nil)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1633 (if inside-overlay |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1634 (funcall (overlay-get ov 'isearch-open-invisible) ov) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1635 (if fct-temp |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1636 (funcall fct-temp ov t))))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1637 |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1638 ;;; This is called when exiting isearch. It closes the temporary |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1639 ;;; opened overlays, except the ones that contain the latest match. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1640 (defun isearch-clean-overlays () |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1641 (when isearch-opened-overlays |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
1642 (mapc 'isearch-open-necessary-overlays isearch-opened-overlays) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1643 (setq isearch-opened-overlays nil))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1644 |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1645 ;;; Verify if the current match is outside of each element of |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1646 ;;; `isearch-opened-overlays', if so close that overlay. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1647 (defun isearch-close-unecessary-overlays (begin end) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1648 (let ((ov-list isearch-opened-overlays) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1649 ov |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1650 inside-overlay |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1651 fct-temp) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1652 (setq isearch-opened-overlays nil) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1653 (while ov-list |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1654 (setq ov (car ov-list)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1655 (setq ov-list (cdr ov-list)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1656 (setq inside-overlay (or (and (> begin (overlay-start ov)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1657 (< begin (overlay-end ov))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1658 (and (> end (overlay-start ov)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1659 (< end (overlay-end ov))))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1660 ;; If this exists it means that the overlay was opened using |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1661 ;; this function, not by us tweaking the overlay properties. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1662 (setq fct-temp (overlay-get ov 'isearch-open-invisible-temporary)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1663 (if inside-overlay |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
1664 (setq isearch-opened-overlays (cons ov isearch-opened-overlays)) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1665 (if fct-temp |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1666 (funcall fct-temp ov t) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1667 (overlay-put ov 'invisible (overlay-get ov 'isearch-invisible)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1668 (overlay-put ov 'intangible (overlay-get ov 'isearch-intangible)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1669 (overlay-put ov 'isearch-invisible nil) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1670 (overlay-put ov 'isearch-intangible nil)))))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1671 |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1672 (defun isearch-range-invisible (beg end) |
18866
04d56f77da0d
(search-invisible): Fix typo.
Richard M. Stallman <rms@gnu.org>
parents:
18783
diff
changeset
|
1673 "Return t if all the text from BEG to END is invisible." |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1674 (and (/= beg end) |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1675 ;; Check that invisibility runs up to END. |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1676 (save-excursion |
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1677 (goto-char beg) |
24919
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
1678 (let ( |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
1679 ;; can-be-opened keeps track if we can open some overlays. |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
1680 (can-be-opened (eq search-invisible 'open)) |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
1681 ;; the list of overlays that could be opened |
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
1682 (crt-overlays nil)) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1683 (when (and can-be-opened isearch-hide-immediately) |
24919
7b31dd5d71bb
(isearch-done): If search ends in middle of intangible
Richard M. Stallman <rms@gnu.org>
parents:
24788
diff
changeset
|
1684 (isearch-close-unecessary-overlays beg end)) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1685 ;; If the following character is currently invisible, |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1686 ;; skip all characters with that same `invisible' property value. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1687 ;; Do that over and over. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1688 (while (and (< (point) end) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1689 (let ((prop |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1690 (get-char-property (point) 'invisible))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1691 (if (eq buffer-invisibility-spec t) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1692 prop |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1693 (or (memq prop buffer-invisibility-spec) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1694 (assq prop buffer-invisibility-spec))))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1695 (if (get-text-property (point) 'invisible) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1696 (progn |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1697 (goto-char (next-single-property-change (point) 'invisible |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1698 nil end)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1699 ;; if text is hidden by an `invisible' text property |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1700 ;; we cannot open it at all. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1701 (setq can-be-opened nil)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1702 (unless (null can-be-opened) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1703 (let ((overlays (overlays-at (point))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1704 ov-list |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1705 o |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1706 invis-prop) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1707 (while overlays |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1708 (setq o (car overlays) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1709 invis-prop (overlay-get o 'invisible)) |
22517
7c42ab0fcb30
(isearch-range-invisible): Handle the case that
Kenichi Handa <handa@m17n.org>
parents:
21792
diff
changeset
|
1710 (if (if (eq buffer-invisibility-spec t) |
7c42ab0fcb30
(isearch-range-invisible): Handle the case that
Kenichi Handa <handa@m17n.org>
parents:
21792
diff
changeset
|
1711 invis-prop |
7c42ab0fcb30
(isearch-range-invisible): Handle the case that
Kenichi Handa <handa@m17n.org>
parents:
21792
diff
changeset
|
1712 (or (memq invis-prop buffer-invisibility-spec) |
7c42ab0fcb30
(isearch-range-invisible): Handle the case that
Kenichi Handa <handa@m17n.org>
parents:
21792
diff
changeset
|
1713 (assq invis-prop buffer-invisibility-spec))) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1714 (if (overlay-get o 'isearch-open-invisible) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1715 (setq ov-list (cons o ov-list)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1716 ;; We found one overlay that cannot be |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1717 ;; opened, that means the whole chunk |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1718 ;; cannot be opened. |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1719 (setq can-be-opened nil))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1720 (setq overlays (cdr overlays))) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1721 (if can-be-opened |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1722 ;; It makes sense to append to the open |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1723 ;; overlays list only if we know that this is |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1724 ;; t. |
20812
d21a1c41800f
(isearch-range-invisible): Avoid infinite loop when search-invisible is nil.
Richard M. Stallman <rms@gnu.org>
parents:
20500
diff
changeset
|
1725 (setq crt-overlays (append ov-list crt-overlays))))) |
d21a1c41800f
(isearch-range-invisible): Avoid infinite loop when search-invisible is nil.
Richard M. Stallman <rms@gnu.org>
parents:
20500
diff
changeset
|
1726 (goto-char (next-overlay-change (point))))) |
16990
a2fc2ef460e3
(isearch-search): Refuse to match invisible text.
Richard M. Stallman <rms@gnu.org>
parents:
16737
diff
changeset
|
1727 ;; See if invisibility reaches up thru END. |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1728 (if (>= (point) end) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1729 (if (and (not (null can-be-opened)) (consp crt-overlays)) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1730 (progn |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1731 (setq isearch-opened-overlays |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1732 (append isearch-opened-overlays crt-overlays)) |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
1733 (mapc 'isearch-open-overlay-temporary crt-overlays) |
18236
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1734 nil) |
f249cd470d71
(isearch-hide-immediately): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18037
diff
changeset
|
1735 t)))))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1736 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1737 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1738 ;;; Highlighting |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1739 |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1740 (defvar isearch-overlay nil) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1741 |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1742 (defun isearch-highlight (beg end) |
32402
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1743 (unless (or (null search-highlight) (null (display-color-p))) |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1744 (cond (isearch-overlay |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1745 ;; Overlay already exists, just move it. |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1746 (move-overlay isearch-overlay beg end (current-buffer))) |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1747 |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1748 (t |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1749 ;; Overlay doesn't exist, create it. |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1750 (setq isearch-overlay (make-overlay beg end)) |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1751 (overlay-put isearch-overlay 'face isearch) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1752 (overlay-put isearch-overlay 'priority 1) ;higher than lazy overlays |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1753 )))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1754 |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1755 (defun isearch-dehighlight (totally) |
32402
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1756 (when isearch-overlay |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1757 (delete-overlay isearch-overlay))) |
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1758 |
725 | 1759 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1760 ;;; General utilities |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1761 |
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1762 |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1763 (defun isearch-no-upper-case-p (string regexp-flag) |
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1764 "Return t if there are no upper case chars in STRING. |
13991
0297cd54b530
(isearch-abort, isearch-no-upper-case-p): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
13799
diff
changeset
|
1765 If REGEXP-FLAG is non-nil, disregard letters preceded by `\\' (but not `\\\\') |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1766 since they have special meaning in a regexp." |
16635
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1767 (let (quote-flag (i 0) (len (length string)) found) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1768 (while (and (not found) (< i len)) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1769 (let ((char (aref string i))) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1770 (if (and regexp-flag (eq char ?\\)) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1771 (setq quote-flag (not quote-flag)) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1772 (if (and (not quote-flag) (not (eq char (downcase char)))) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1773 (setq found t)))) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1774 (setq i (1+ i))) |
1b774e82752f
(isearch-no-upper-case-p): Use downcase
Richard M. Stallman <rms@gnu.org>
parents:
16620
diff
changeset
|
1775 (not found))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1776 |
3526
ac5c322cea84
(search-upper-case): Make `no-yanks' the default.
Richard M. Stallman <rms@gnu.org>
parents:
3476
diff
changeset
|
1777 ;; Portability functions to support various Emacs versions. |
725 | 1778 |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1779 (defun isearch-text-char-description (c) |
31974
9b1d5a50bddd
(isearch-text-char-description): Pointless rewrite.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30476
diff
changeset
|
1780 (cond |
9b1d5a50bddd
(isearch-text-char-description): Pointless rewrite.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30476
diff
changeset
|
1781 ((< c ?\ ) (format "^%c" (+ c 64))) |
9b1d5a50bddd
(isearch-text-char-description): Pointless rewrite.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30476
diff
changeset
|
1782 ((= c ?\^?) "^?") |
9b1d5a50bddd
(isearch-text-char-description): Pointless rewrite.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30476
diff
changeset
|
1783 (t (char-to-string c)))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1784 |
9934
4c3ab9b8d1a9
(isearch-unread): Always use unread-command-events.
Richard M. Stallman <rms@gnu.org>
parents:
9768
diff
changeset
|
1785 ;; General function to unread characters or events. |
13799
49b7cd70c43c
(isearch-done): Use executing-kbd-macro.
Karl Heuer <kwzh@gnu.org>
parents:
13682
diff
changeset
|
1786 ;; Also insert them in a keyboard macro being defined. |
2031
f2dbfd43a1c5
(isearch-unread): Handle multiple args.
Richard M. Stallman <rms@gnu.org>
parents:
1885
diff
changeset
|
1787 (defun isearch-unread (&rest char-or-events) |
33704
f14d787f4b33
(isearch-mode-map): Fix docstring. Init in defvar.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32402
diff
changeset
|
1788 (mapc 'store-kbd-macro-event char-or-events) |
9934
4c3ab9b8d1a9
(isearch-unread): Always use unread-command-events.
Richard M. Stallman <rms@gnu.org>
parents:
9768
diff
changeset
|
1789 (setq unread-command-events |
4c3ab9b8d1a9
(isearch-unread): Always use unread-command-events.
Richard M. Stallman <rms@gnu.org>
parents:
9768
diff
changeset
|
1790 (append char-or-events unread-command-events))) |
1142
7fc9de9d8cef
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
853
diff
changeset
|
1791 |
26408 | 1792 |
1793 ;;; isearch-lazy-highlight feature | |
1794 ;;; by Bob Glickstein <http://www.zanshin.com/~bobg/> | |
1795 | |
1796 ;;; When active, *every* match for the current search string is | |
1797 ;;; highlighted: the current one using the normal isearch match color | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1798 ;;; and all the others using `isearch-lazy-highlight-face'. The extra |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1799 ;;; highlighting makes it easier to anticipate where the cursor will |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1800 ;;; land each time you press C-s or C-r to repeat a pending search. |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1801 ;;; Highlighting of these additional matches happens in a deferred |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1802 ;;; fashion using "idle timers," so the cycles needed do not rob |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1803 ;;; isearch of its usual snappy response. |
26408 | 1804 |
1805 ;;; IMPLEMENTATION NOTE: This depends on some isearch internals. | |
1806 ;;; Specifically: | |
1807 ;;; - `isearch-update' is expected to be called (at least) every time | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1808 ;;; the search string or window-start changes; |
26408 | 1809 ;;; - `isearch-string' is expected to contain the current search |
1810 ;;; string as entered by the user; | |
1811 ;;; - the type of the current search is expected to be given by | |
1812 ;;; `isearch-word' and `isearch-regexp'; | |
1813 ;;; - the direction of the current search is expected to be given by | |
1814 ;;; `isearch-forward'; | |
1815 ;;; - the variable `isearch-invalid-regexp' is expected to be true | |
1816 ;;; iff `isearch-string' is an invalid regexp. | |
1817 | |
1818 (require 'timer) | |
1819 | |
1820 (defgroup isearch-lazy-highlight nil | |
1821 "Lazy highlighting feature for incremental search." | |
1822 :prefix "isearch-lazy-highlight-" | |
35344
44f290e19a70
(isearch-lazy-highlight): Add :version.
Dave Love <fx@gnu.org>
parents:
35234
diff
changeset
|
1823 :version "21.1" |
26408 | 1824 :group 'isearch) |
1825 | |
1826 (defcustom isearch-lazy-highlight t | |
1827 "*Controls the lazy-highlighting during incremental searches. | |
1828 When non-nil, all text in the buffer matching the current search | |
1829 string is highlighted lazily (see `isearch-lazy-highlight-initial-delay' | |
1830 and `isearch-lazy-highlight-interval')." | |
1831 :type 'boolean | |
1832 :group 'isearch-lazy-highlight) | |
1833 | |
1834 (defcustom isearch-lazy-highlight-cleanup t | |
1835 "*Controls whether to remove extra highlighting after a search. | |
1836 If this is nil, extra highlighting can be \"manually\" removed with | |
1837 \\[isearch-lazy-highlight-cleanup]." | |
1838 :type 'boolean | |
1839 :group 'isearch-lazy-highlight) | |
1840 | |
1841 (defcustom isearch-lazy-highlight-initial-delay 0.25 | |
1842 "*Seconds to wait before beginning to lazily highlight all matches." | |
1843 :type 'number | |
1844 :group 'isearch-lazy-highlight) | |
1845 | |
1846 (defcustom isearch-lazy-highlight-interval 0.0625 | |
1847 "*Seconds between lazily highlighting successive matches." | |
1848 :type 'number | |
1849 :group 'isearch-lazy-highlight) | |
1850 | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1851 (defcustom isearch-lazy-highlight-max-at-a-time 20 |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1852 "*Maximum matches to highlight at a time (for `isearch-lazy-highlight'). |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1853 Larger values may reduce isearch's responsiveness to user input; |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1854 smaller values make matches highlight slowly. |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1855 A value of nil means highlight all matches." |
34603
dab8fe8d55f4
(isearch-lazy-highlight-max): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33725
diff
changeset
|
1856 :type '(choice (const :tag "All" nil) |
dab8fe8d55f4
(isearch-lazy-highlight-max): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33725
diff
changeset
|
1857 (integer :tag "Some")) |
dab8fe8d55f4
(isearch-lazy-highlight-max): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33725
diff
changeset
|
1858 :group 'isearch-lazy-highlight) |
dab8fe8d55f4
(isearch-lazy-highlight-max): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33725
diff
changeset
|
1859 |
32080
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1860 (defgroup isearch-faces nil |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1861 "Lazy highlighting feature for incremental search." |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1862 :version "21.1" |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1863 :group 'isearch) |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1864 |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1865 (defface isearch |
35158
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1866 '((((type tty pc) (class color)) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1867 (:background "magenta4" :foreground "cyan1")) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1868 (((class color) (background light)) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1869 (:background "magenta4" :foreground "lightskyblue1")) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1870 (((class color) (background dark)) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1871 (:background "palevioletred2" :foreground "brown4")) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1872 (t (:inverse-video t))) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1873 "Face for highlighting Isearch matches." |
32080
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1874 :group 'isearch-faces) |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1875 (defvar isearch 'isearch) |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1876 |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1877 (defface isearch-lazy-highlight-face |
35158
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1878 '((((type tty pc) (class color)) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1879 (:background "turquoise3")) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1880 (((class color) (background light)) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1881 (:background "paleturquoise")) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1882 (((class color) (background dark)) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1883 (:background "paleturquoise4")) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1884 (t (:underline t))) |
7e92991883c2
(isearch, isearch-lazy-highlight-face): New
Eli Zaretskii <eliz@gnu.org>
parents:
35120
diff
changeset
|
1885 "Face for lazy highlighting of Isearch matches other than the current one." |
32080
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1886 :group 'isearch-faces) |
ce5196c4aa6f
(isearch-faces): New custom group.
Gerd Moellmann <gerd@gnu.org>
parents:
31974
diff
changeset
|
1887 (defvar isearch-lazy-highlight-face 'isearch-lazy-highlight-face) |
26408 | 1888 |
1889 (defvar isearch-lazy-highlight-overlays nil) | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1890 (defvar isearch-lazy-highlight-wrapped nil) |
26408 | 1891 (defvar isearch-lazy-highlight-start nil) |
1892 (defvar isearch-lazy-highlight-end nil) | |
1893 (defvar isearch-lazy-highlight-timer nil) | |
1894 (defvar isearch-lazy-highlight-last-string nil) | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1895 (defvar isearch-lazy-highlight-window nil) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1896 (defvar isearch-lazy-highlight-window-start nil) |
26408 | 1897 |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1898 (defun isearch-lazy-highlight-cleanup (&optional force) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1899 "Stop lazy highlighting and remove extra highlighting from current buffer. |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1900 FORCE non-nil means do it whether or not `isearch-lazy-highlight-cleanup' |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1901 is nil. This function is called when exiting an incremental search if |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1902 `isearch-lazy-highlight-cleanup' is non-nil." |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1903 (interactive '(t)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1904 (if (or force isearch-lazy-highlight-cleanup) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1905 (while isearch-lazy-highlight-overlays |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1906 (delete-overlay (car isearch-lazy-highlight-overlays)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1907 (setq isearch-lazy-highlight-overlays |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1908 (cdr isearch-lazy-highlight-overlays)))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1909 (when isearch-lazy-highlight-timer |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1910 (cancel-timer isearch-lazy-highlight-timer) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1911 (setq isearch-lazy-highlight-timer nil))) |
26408 | 1912 |
1913 (defun isearch-lazy-highlight-new-loop () | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1914 "Cleanup any previous `isearch-lazy-highlight' loop and begin a new one. |
26408 | 1915 This happens when `isearch-update' is invoked (which can cause the |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1916 search string to change or the window to scroll)." |
35012
444b43c38978
Do highlighting of alternative matches all at once,
Richard M. Stallman <rms@gnu.org>
parents:
34603
diff
changeset
|
1917 (when (and isearch-lazy-highlight |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1918 (sit-for 0) ;make sure (window-start) is credible |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1919 (or (not (equal isearch-string |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1920 isearch-lazy-highlight-last-string)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1921 (not (eq (selected-window) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1922 isearch-lazy-highlight-window)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1923 (not (= (window-start) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1924 isearch-lazy-highlight-window-start)))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1925 ;; something important did indeed change |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1926 (isearch-lazy-highlight-cleanup t) ;kill old loop & remove overlays |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1927 (when (not isearch-invalid-regexp) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1928 (setq isearch-lazy-highlight-window (selected-window) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1929 isearch-lazy-highlight-window-start (window-start) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1930 isearch-lazy-highlight-start (point) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1931 isearch-lazy-highlight-end (point) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1932 isearch-lazy-highlight-last-string isearch-string |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1933 isearch-lazy-highlight-wrapped nil) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1934 (setq isearch-lazy-highlight-timer |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1935 (run-with-idle-timer isearch-lazy-highlight-initial-delay nil |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1936 'isearch-lazy-highlight-update))))) |
35012
444b43c38978
Do highlighting of alternative matches all at once,
Richard M. Stallman <rms@gnu.org>
parents:
34603
diff
changeset
|
1937 |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1938 (defun isearch-lazy-highlight-search () |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1939 "Search ahead for the next or previous match, for lazy highlighting. |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1940 Attempt to do the search exactly the way the pending isearch would." |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1941 (let ((case-fold-search isearch-case-fold-search) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1942 (choices (cond (isearch-word |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1943 '(word-search-forward . word-search-backward)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1944 (isearch-regexp |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1945 '(re-search-forward . re-search-backward)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1946 (t |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1947 '(search-forward . search-backward))))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1948 (funcall (if isearch-forward |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1949 (car choices) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1950 (cdr choices)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1951 isearch-string |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1952 (if isearch-forward |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1953 (if isearch-lazy-highlight-wrapped |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1954 isearch-lazy-highlight-start |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1955 (window-end)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1956 (if isearch-lazy-highlight-wrapped |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1957 isearch-lazy-highlight-end |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1958 (window-start))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1959 t))) |
26408 | 1960 |
1961 (defun isearch-lazy-highlight-update () | |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1962 "Update highlighting of other matches for current search." |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1963 (let ((max isearch-lazy-highlight-max-at-a-time) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1964 (looping t) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1965 nomore) |
35225
eee3a978c12e
(isearch-lazy-highlight-update):
Richard M. Stallman <rms@gnu.org>
parents:
35212
diff
changeset
|
1966 (save-excursion |
eee3a978c12e
(isearch-lazy-highlight-update):
Richard M. Stallman <rms@gnu.org>
parents:
35212
diff
changeset
|
1967 (save-match-data |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1968 (goto-char (if isearch-forward |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1969 isearch-lazy-highlight-end |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1970 isearch-lazy-highlight-start)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1971 (while looping |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1972 (let ((found (isearch-lazy-highlight-search))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1973 (when max |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1974 (setq max (1- max)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1975 (if (<= max 0) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1976 (setq looping nil))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1977 (if found |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1978 (let ((mb (match-beginning 0)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1979 (me (match-end 0))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1980 (if (= mb me) ;zero-length match |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1981 (forward-char 1) |
32402
b8defc3b27e2
(isearch-set-lazy-highlight-faces-at): New function.
Miles Bader <miles@gnu.org>
parents:
32083
diff
changeset
|
1982 |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1983 ;; non-zero-length match |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1984 (let ((ov (make-overlay mb me))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1985 (overlay-put ov 'face isearch-lazy-highlight-face) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1986 (overlay-put ov 'priority 0) ;lower than main overlay |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1987 (overlay-put ov 'window (selected-window)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1988 (push ov isearch-lazy-highlight-overlays))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1989 (if isearch-forward |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1990 (setq isearch-lazy-highlight-end (point)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1991 (setq isearch-lazy-highlight-start (point)))) |
32083
b716f8518dd7
(isearch-lazy-highlight-update): Don't put a lazy
Gerd Moellmann <gerd@gnu.org>
parents:
32080
diff
changeset
|
1992 |
35362
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1993 ;; not found |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1994 (if isearch-lazy-highlight-wrapped |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1995 (setq looping nil |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1996 nomore t) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1997 (setq isearch-lazy-highlight-wrapped t) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1998 (if isearch-forward |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
1999 (progn |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2000 (setq isearch-lazy-highlight-end (window-start)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2001 (goto-char (window-start))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2002 (setq isearch-lazy-highlight-start (window-end)) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2003 (goto-char (window-end))))))) |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2004 (unless nomore |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2005 (setq isearch-lazy-highlight-timer |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2006 (run-at-time isearch-lazy-highlight-interval nil |
f6b85f5a5397
(isearch-highlight): Set isearch-overlay priority to
Gerd Moellmann <gerd@gnu.org>
parents:
35344
diff
changeset
|
2007 'isearch-lazy-highlight-update))))))) |
26408 | 2008 |
30476
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2009 (defun isearch-resume (search regexp word forward message case-fold) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2010 "Resume an incremental search. |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2011 SEARCH is the string or regexp searched for. |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2012 REGEXP non-nil means the resumed search was a regexp search. |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2013 WORD non-nil means resume a word search. |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2014 FORWARD non-nil means resume a forward search. |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2015 MESSAGE is the echo-area message recorded for the search resumed. |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2016 CASE-FOLD non-nil means the search was case-insensitive." |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2017 (isearch-mode forward regexp nil nil word) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2018 (setq isearch-string search |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2019 isearch-message message |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2020 isearch-case-fold-search case-fold) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2021 (isearch-search)) |
26fe451fc5f7
(isearch-resume): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29377
diff
changeset
|
2022 |
2230
6314334d7c2b
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2055
diff
changeset
|
2023 ;;; isearch.el ends here |