diff options
| author | Kim F. Storm | 2002-09-15 21:35:23 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2002-09-15 21:35:23 +0000 |
| commit | bac6e4e23a186311875fcd77300deb716f560df1 (patch) | |
| tree | f684a90ab5db19971d299835d30a64be574a5867 /lisp | |
| parent | 4c94395e1abb9766f4de6e5812b7245ae7741d74 (diff) | |
| download | emacs-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.el | 187 |
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 | ||