aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2001-11-18 01:44:08 +0000
committerStefan Monnier2001-11-18 01:44:08 +0000
commitd6b3b5f4f8fcd64c1131fec3794da47eed278b4b (patch)
tree9799108455c8ac10a5780390ab7e43beca2a3ce6
parentd3b80e9b70eaa0edb4cfc0d91543c41929fa70c0 (diff)
downloademacs-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.el48
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)