aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKim F. Storm2002-09-15 21:35:23 +0000
committerKim F. Storm2002-09-15 21:35:23 +0000
commitbac6e4e23a186311875fcd77300deb716f560df1 (patch)
treef684a90ab5db19971d299835d30a64be574a5867 /lisp
parent4c94395e1abb9766f4de6e5812b7245ae7741d74 (diff)
downloademacs-bac6e4e23a186311875fcd77300deb716f560df1.tar.gz
emacs-bac6e4e23a186311875fcd77300deb716f560df1.zip
(menu-bar-last-search-type): New var.
(nonincremental-repeat-search-forward) (nonincremental-repeat-search-backward): Repeat string or regexp search depending on menu-bar-last-search-type. (nonincremental-search-forward, nonincremental-re-search-forward) (nonincremental-search-backward, nonincremental-re-search-backward): Set menu-bar-last-search-type to string or regexp. (nonincremental-repeat-re-search-forward): Removed. (nonincremental-repeat-re-search-backward): Removed. (menu-bar-replace-menu): New keymap for "Edit->Replace" submenu. (menu-bar-i-search-menu): New keymap for "Incremental Search" submenu. (menu-bar-adv-search-menu): Removed. (menu-bar-search-menu): Reorganized. (menu-bar-edit-menu): Added "Replace" submenu.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/menu-bar.el187
1 files changed, 109 insertions, 78 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 9bc71004147..edee0b89d97 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -193,9 +193,41 @@ A large number or nil slows down menu responsiveness."
193 193
194 194
195;; The "Edit" menu items 195;; The "Edit" menu items
196
197;; The "Edit->Search" submenu
198(defvar menu-bar-last-search-type nil
199 "Type of last non-incremental search command called from the menu.")
200
201(defun nonincremental-repeat-search-forward ()
202 "Search forward for the previous search string or regexp."
203 (interactive)
204 (cond
205 ((and (eq menu-bar-last-search-type 'string)
206 search-ring)
207 (search-forward (car search-ring)))
208 ((and (eq menu-bar-last-search-type 'regexp)
209 regexp-search-ring)
210 (re-search-forward (car regexp-search-ring)))
211 (t
212 (error "No previous search"))))
213
214(defun nonincremental-repeat-search-backward ()
215 "Search backward for the previous search string or regexp."
216 (interactive)
217 (cond
218 ((and (eq menu-bar-last-search-type 'string)
219 search-ring)
220 (search-backward (car search-ring)))
221 ((and (eq menu-bar-last-search-type 'regexp)
222 regexp-search-ring)
223 (re-search-backward (car regexp-search-ring)))
224 (t
225 (error "No previous search"))))
226
196(defun nonincremental-search-forward (string) 227(defun nonincremental-search-forward (string)
197 "Read a string and search for it nonincrementally." 228 "Read a string and search for it nonincrementally."
198 (interactive "sSearch for string: ") 229 (interactive "sSearch for string: ")
230 (setq menu-bar-last-search-type 'string)
199 (if (equal string "") 231 (if (equal string "")
200 (search-forward (car search-ring)) 232 (search-forward (car search-ring))
201 (isearch-update-ring string nil) 233 (isearch-update-ring string nil)
@@ -204,6 +236,7 @@ A large number or nil slows down menu responsiveness."
204(defun nonincremental-search-backward (string) 236(defun nonincremental-search-backward (string)
205 "Read a string and search backward for it nonincrementally." 237 "Read a string and search backward for it nonincrementally."
206 (interactive "sSearch for string: ") 238 (interactive "sSearch for string: ")
239 (setq menu-bar-last-search-type 'string)
207 (if (equal string "") 240 (if (equal string "")
208 (search-backward (car search-ring)) 241 (search-backward (car search-ring))
209 (isearch-update-ring string nil) 242 (isearch-update-ring string nil)
@@ -212,6 +245,7 @@ A large number or nil slows down menu responsiveness."
212(defun nonincremental-re-search-forward (string) 245(defun nonincremental-re-search-forward (string)
213 "Read a regular expression and search for it nonincrementally." 246 "Read a regular expression and search for it nonincrementally."
214 (interactive "sSearch for regexp: ") 247 (interactive "sSearch for regexp: ")
248 (setq menu-bar-last-search-type 'regexp)
215 (if (equal string "") 249 (if (equal string "")
216 (re-search-forward (car regexp-search-ring)) 250 (re-search-forward (car regexp-search-ring))
217 (isearch-update-ring string t) 251 (isearch-update-ring string t)
@@ -220,106 +254,100 @@ A large number or nil slows down menu responsiveness."
220(defun nonincremental-re-search-backward (string) 254(defun nonincremental-re-search-backward (string)
221 "Read a regular expression and search backward for it nonincrementally." 255 "Read a regular expression and search backward for it nonincrementally."
222 (interactive "sSearch for regexp: ") 256 (interactive "sSearch for regexp: ")
257 (setq menu-bar-last-search-type 'regexp)
223 (if (equal string "") 258 (if (equal string "")
224 (re-search-backward (car regexp-search-ring)) 259 (re-search-backward (car regexp-search-ring))
225 (isearch-update-ring string t) 260 (isearch-update-ring string t)
226 (re-search-backward string))) 261 (re-search-backward string)))
227 262
228(defun nonincremental-repeat-search-forward () 263(defvar menu-bar-search-menu (make-sparse-keymap "Search"))
229 "Search forward for the previous search string."
230 (interactive)
231 (if (null search-ring)
232 (error "No previous search"))
233 (search-forward (car search-ring)))
234
235(defun nonincremental-repeat-search-backward ()
236 "Search backward for the previous search string."
237 (interactive)
238 (if (null search-ring)
239 (error "No previous search"))
240 (search-backward (car search-ring)))
241
242(defun nonincremental-repeat-re-search-forward ()
243 "Search forward for the previous regular expression."
244 (interactive)
245 (if (null regexp-search-ring)
246 (error "No previous search"))
247 (re-search-forward (car regexp-search-ring)))
248 264
249(defun nonincremental-repeat-re-search-backward () 265;; The Edit->Search->Incremental Search menu
250 "Search backward for the previous regular expression." 266(defvar menu-bar-i-search-menu
251 (interactive) 267 (make-sparse-keymap "Incremental Search"))
252 (if (null regexp-search-ring) 268
253 (error "No previous search")) 269(define-key menu-bar-i-search-menu [isearch-backward-regexp]
254 (re-search-backward (car regexp-search-ring))) 270 '(menu-item "Backward Regexp..." isearch-backward-regexp
271 :help "Search backwards for a regular expression as you type it"))
272(define-key menu-bar-i-search-menu [isearch-forward-regexp]
273 '(menu-item "Forward Regexp..." isearch-forward-regexp
274 :help "Search forward for a regular expression as you type it"))
275(define-key menu-bar-i-search-menu [isearch-backward]
276 '(menu-item "Backward String..." isearch-backward
277 :help "Search backwards for a string as you type it"))
278(define-key menu-bar-i-search-menu [isearch-forward]
279 '(menu-item "Forward String..." isearch-forward
280 :help "Search forward for a string as you type it"))
255 281
256(defvar menu-bar-search-menu (make-sparse-keymap "Search"))
257(defvar menu-bar-adv-search-menu
258 (make-sparse-keymap "Advanced Search/Replace"))
259
260(define-key menu-bar-adv-search-menu [tags-continue]
261 '(menu-item "Continue Tags Search/Replace" tags-loop-continue
262 :help "Continue last tags search/replace operation"))
263(define-key menu-bar-adv-search-menu [tags-repl]
264 '(menu-item "Replace in all tagged files" tags-query-replace
265 :help "Interactively replace a regexp in all tagged files"))
266(define-key menu-bar-adv-search-menu [tags-srch]
267 '(menu-item "Search in all tagged files" tags-search
268 :help "Search for a regexp in all tagged files"))
269 282
270(define-key menu-bar-adv-search-menu [separator-tag-search] 283(define-key menu-bar-search-menu [i-search]
284 (list 'menu-item "Incremental Search" menu-bar-i-search-menu
285 :help "Incremental Search"))
286(define-key menu-bar-search-menu [separator-tag-isearch]
271 '(menu-item "--")) 287 '(menu-item "--"))
272 288
273(define-key menu-bar-adv-search-menu [query-replace-regexp] 289(define-key menu-bar-search-menu [tags-continue]
274 '(menu-item "Replace Regexp..." query-replace-regexp 290 '(menu-item "Continue Tags Search" tags-loop-continue
275 :enable (not buffer-read-only) 291 :help "Continue last tags search operation"))
276 :help "Replace regular expression, ask about each occurrence")) 292(define-key menu-bar-search-menu [tags-srch]
277(define-key menu-bar-adv-search-menu [repeat-regexp-back] 293 '(menu-item "Search tagged files" tags-search
278 '(menu-item "Repeat Regexp Backwards" 294 :help "Search for a regexp in all tagged files"))
279 nonincremental-repeat-re-search-backward 295(define-key menu-bar-search-menu [separator-tag-search]
280 :enable regexp-search-ring
281 :help "Repeat last regular expression search backwards"))
282(define-key menu-bar-adv-search-menu [repeat-regexp-fwd]
283 '(menu-item "Repeat Regexp" nonincremental-repeat-re-search-forward
284 :enable regexp-search-ring
285 :help "Repeat last regular expression search forward"))
286(define-key menu-bar-adv-search-menu [re-search-backward]
287 '(menu-item "Search Regexp Backwards..." nonincremental-re-search-backward
288 :help "Search backwards for a regular expression"))
289(define-key menu-bar-adv-search-menu [re-search-forward]
290 '(menu-item "Search Regexp..." nonincremental-re-search-forward
291 :help "Search forward for a regular expression"))
292(define-key menu-bar-adv-search-menu [separator-tag-isearch]
293 '(menu-item "--")) 296 '(menu-item "--"))
294(define-key menu-bar-adv-search-menu [isearch-backward]
295 '(menu-item "Incremental Search Backwards..." isearch-backward
296 :help "Search backwards for a string as you type it"))
297(define-key menu-bar-adv-search-menu [isearch-forward]
298 '(menu-item "Incremental Search..." isearch-forward
299 :help "Search forward for a string as you type it"))
300(define-key menu-bar-search-menu [re-search]
301 (list 'menu-item "Advanced Search/Replace" menu-bar-adv-search-menu
302 :help "Regexp and Tags search and replace"))
303 297
304(define-key menu-bar-search-menu [query-replace]
305 '(menu-item "Replace..." query-replace
306 :enable (not buffer-read-only)
307 :help "Replace string interactively, ask about each occurrence"))
308(define-key menu-bar-search-menu [repeat-search-back] 298(define-key menu-bar-search-menu [repeat-search-back]
309 '(menu-item "Repeat Backwards" nonincremental-repeat-search-backward 299 '(menu-item "Repeat Backwards" nonincremental-repeat-search-backward
310 :enable search-ring 300 :enable (or (and (eq menu-bar-last-search-type 'string)
301 search-ring)
302 (and (eq menu-bar-last-search-type 'regexp)
303 regexp-search-ring))
311 :help "Repeat last search backwards")) 304 :help "Repeat last search backwards"))
312(define-key menu-bar-search-menu [repeat-search-fwd] 305(define-key menu-bar-search-menu [repeat-search-fwd]
313 '(menu-item "Repeat Search" nonincremental-repeat-search-forward 306 '(menu-item "Repeat Forward" nonincremental-repeat-search-forward
314 :enable search-ring 307 :enable (or (and (eq menu-bar-last-search-type 'string)
308 search-ring)
309 (and (eq menu-bar-last-search-type 'regexp)
310 regexp-search-ring))
315 :help "Repeat last search forward")) 311 :help "Repeat last search forward"))
312(define-key menu-bar-search-menu [separator-repeat-search]
313 '(menu-item "--"))
314
315(define-key menu-bar-search-menu [re-search-backward]
316 '(menu-item "Regexp Backwards..." nonincremental-re-search-backward
317 :help "Search backwards for a regular expression"))
318(define-key menu-bar-search-menu [re-search-forward]
319 '(menu-item "Regexp Forward..." nonincremental-re-search-forward
320 :help "Search forward for a regular expression"))
321
316(define-key menu-bar-search-menu [search-backward] 322(define-key menu-bar-search-menu [search-backward]
317 '(menu-item "Search Backwards..." nonincremental-search-backward 323 '(menu-item "String Backwards..." nonincremental-search-backward
318 :help "Search backwards for a string")) 324 :help "Search backwards for a string"))
319(define-key menu-bar-search-menu [search-forward] 325(define-key menu-bar-search-menu [search-forward]
320 '(menu-item "Search..." nonincremental-search-forward 326 '(menu-item "String Forward..." nonincremental-search-forward
321 :help "Search forward for a string")) 327 :help "Search forward for a string"))
322 328
329;; The Edit->Replace submenu
330
331(defvar menu-bar-replace-menu (make-sparse-keymap "Replace"))
332
333(define-key menu-bar-replace-menu [tags-repl-continue]
334 '(menu-item "Continue Replace" tags-loop-continue
335 :help "Continue last tags replace operation"))
336(define-key menu-bar-replace-menu [tags-repl]
337 '(menu-item "Replace in tagged files" tags-query-replace
338 :help "Interactively replace a regexp in all tagged files"))
339(define-key menu-bar-replace-menu [separator-replace-tags]
340 '(menu-item "--"))
341
342(define-key menu-bar-replace-menu [query-replace-regexp]
343 '(menu-item "Replace Regexp..." query-replace-regexp
344 :enable (not buffer-read-only)
345 :help "Replace regular expression interactively, ask about each occurrence"))
346(define-key menu-bar-replace-menu [query-replace]
347 '(menu-item "Replace String..." query-replace
348 :enable (not buffer-read-only)
349 :help "Replace string interactively, ask about each occurrence"))
350
323;;; Assemble the top-level Edit menu items. 351;;; Assemble the top-level Edit menu items.
324(define-key menu-bar-edit-menu [props] 352(define-key menu-bar-edit-menu [props]
325 '(menu-item "Text Properties" facemenu-menu 353 '(menu-item "Text Properties" facemenu-menu
@@ -397,6 +425,9 @@ A large number or nil slows down menu responsiveness."
397(define-key menu-bar-edit-menu [goto] 425(define-key menu-bar-edit-menu [goto]
398 (list 'menu-item "Go To" menu-bar-goto-menu)) 426 (list 'menu-item "Go To" menu-bar-goto-menu))
399 427
428(define-key menu-bar-edit-menu [replace]
429 (list 'menu-item "Replace" menu-bar-replace-menu))
430
400(define-key menu-bar-edit-menu [search] 431(define-key menu-bar-edit-menu [search]
401 (list 'menu-item "Search" menu-bar-search-menu)) 432 (list 'menu-item "Search" menu-bar-search-menu))
402 433