diff options
| author | Stefan Monnier | 2001-11-18 01:44:08 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2001-11-18 01:44:08 +0000 |
| commit | d6b3b5f4f8fcd64c1131fec3794da47eed278b4b (patch) | |
| tree | 9799108455c8ac10a5780390ab7e43beca2a3ce6 | |
| parent | d3b80e9b70eaa0edb4cfc0d91543c41929fa70c0 (diff) | |
| download | emacs-d6b3b5f4f8fcd64c1131fec3794da47eed278b4b.tar.gz emacs-d6b3b5f4f8fcd64c1131fec3794da47eed278b4b.zip | |
(reb-mode): Use define-derived-mode.
(font-lock-defaults-alist): Don't change it any more.
(reb-subexp-mode-map): Cleanup.
| -rw-r--r-- | lisp/emacs-lisp/re-builder.el | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el index 11cf0f6ab2f..aeeca8ffddd 100644 --- a/lisp/emacs-lisp/re-builder.el +++ b/lisp/emacs-lisp/re-builder.el | |||
| @@ -226,21 +226,13 @@ Except for Lisp syntax this is the same as `reb-regexp'.") | |||
| 226 | (define-key reb-mode-map "\C-c\C-e" 'reb-enter-subexp-mode) | 226 | (define-key reb-mode-map "\C-c\C-e" 'reb-enter-subexp-mode) |
| 227 | (define-key reb-mode-map "\C-c\C-u" 'reb-force-update))) | 227 | (define-key reb-mode-map "\C-c\C-u" 'reb-force-update))) |
| 228 | 228 | ||
| 229 | (defun reb-mode () | 229 | (define-derived-mode reb-mode nil "RE Builder" |
| 230 | "Major mode for interactively building Regular Expressions. | 230 | "Major mode for interactively building Regular Expressions." |
| 231 | \\{reb-mode-map}" | 231 | (reb-mode-common)) |
| 232 | (interactive) | ||
| 233 | |||
| 234 | (setq major-mode 'reb-mode | ||
| 235 | mode-name "RE Builder") | ||
| 236 | (use-local-map reb-mode-map) | ||
| 237 | (reb-mode-common) | ||
| 238 | (run-hooks 'reb-mode-hook)) | ||
| 239 | 232 | ||
| 240 | (define-derived-mode reb-lisp-mode | 233 | (define-derived-mode reb-lisp-mode |
| 241 | emacs-lisp-mode "RE Builder Lisp" | 234 | emacs-lisp-mode "RE Builder Lisp" |
| 242 | "Major mode for interactively building symbolic Regular Expressions. | 235 | "Major mode for interactively building symbolic Regular Expressions." |
| 243 | \\{reb-lisp-mode-map}" | ||
| 244 | (cond ((eq reb-re-syntax 'lisp-re) ; Pull in packages | 236 | (cond ((eq reb-re-syntax 'lisp-re) ; Pull in packages |
| 245 | (require 'lisp-re)) ; as needed | 237 | (require 'lisp-re)) ; as needed |
| 246 | ((eq reb-re-syntax 'sregex) ; sregex is not autoloaded | 238 | ((eq reb-re-syntax 'sregex) ; sregex is not autoloaded |
| @@ -252,29 +244,17 @@ Except for Lisp syntax this is the same as `reb-regexp'.") | |||
| 252 | (define-key reb-lisp-mode-map "\C-c" | 244 | (define-key reb-lisp-mode-map "\C-c" |
| 253 | (lookup-key reb-mode-map "\C-c")) | 245 | (lookup-key reb-mode-map "\C-c")) |
| 254 | 246 | ||
| 255 | (if (boundp 'font-lock-defaults-alist) | 247 | (defvar reb-subexp-mode-map |
| 256 | (setq font-lock-defaults-alist | 248 | (let ((m (make-keymap))) |
| 257 | (cons (cons 'reb-lisp-mode | 249 | (suppress-keymap m) |
| 258 | (cdr (assoc 'emacs-lisp-mode | 250 | ;; Again share the "\C-c" keymap for the commands |
| 259 | font-lock-defaults-alist))) | 251 | (define-key m "\C-c" (lookup-key reb-mode-map "\C-c")) |
| 260 | font-lock-defaults-alist))) | 252 | (define-key m "q" 'reb-quit-subexp-mode) |
| 261 | 253 | (dotimes (digit 10) | |
| 262 | (defvar reb-subexp-mode-map nil | 254 | (define-key m (int-to-string digit) 'reb-display-subexp)) |
| 255 | m) | ||
| 263 | "Keymap used by the RE Builder for the subexpression mode.") | 256 | "Keymap used by the RE Builder for the subexpression mode.") |
| 264 | 257 | ||
| 265 | (if (not reb-subexp-mode-map) | ||
| 266 | (progn | ||
| 267 | (setq reb-subexp-mode-map (make-sparse-keymap)) | ||
| 268 | (suppress-keymap reb-subexp-mode-map) | ||
| 269 | ;; Again share the "\C-c" keymap for the commands | ||
| 270 | (define-key reb-subexp-mode-map "\C-c" | ||
| 271 | (lookup-key reb-mode-map "\C-c")) | ||
| 272 | (define-key reb-subexp-mode-map "q" 'reb-quit-subexp-mode) | ||
| 273 | (mapcar (lambda (digit) | ||
| 274 | (define-key reb-subexp-mode-map (int-to-string digit) | ||
| 275 | 'reb-display-subexp)) | ||
| 276 | '(0 1 2 3 4 5 6 7 8 9)))) | ||
| 277 | |||
| 278 | (defun reb-mode-common () | 258 | (defun reb-mode-common () |
| 279 | "Setup functions common to functions `reb-mode' and `reb-mode-lisp'." | 259 | "Setup functions common to functions `reb-mode' and `reb-mode-lisp'." |
| 280 | 260 | ||
| @@ -411,7 +391,6 @@ Except for Lisp syntax this is the same as `reb-regexp'.") | |||
| 411 | (defun reb-enter-subexp-mode () | 391 | (defun reb-enter-subexp-mode () |
| 412 | "Enter the subexpression mode in the RE Builder." | 392 | "Enter the subexpression mode in the RE Builder." |
| 413 | (interactive) | 393 | (interactive) |
| 414 | |||
| 415 | (setq reb-subexp-mode t) | 394 | (setq reb-subexp-mode t) |
| 416 | (reb-update-modestring) | 395 | (reb-update-modestring) |
| 417 | (use-local-map reb-subexp-mode-map) | 396 | (use-local-map reb-subexp-mode-map) |
| @@ -434,7 +413,6 @@ If the optional PAUSE is non-nil then pause at the end in any case." | |||
| 434 | (defun reb-quit-subexp-mode () | 413 | (defun reb-quit-subexp-mode () |
| 435 | "Quit the subexpression mode in the RE Builder." | 414 | "Quit the subexpression mode in the RE Builder." |
| 436 | (interactive) | 415 | (interactive) |
| 437 | |||
| 438 | (setq reb-subexp-mode nil | 416 | (setq reb-subexp-mode nil |
| 439 | reb-subexp-displayed nil) | 417 | reb-subexp-displayed nil) |
| 440 | (reb-update-modestring) | 418 | (reb-update-modestring) |