226 |
(define-key reb-mode-map "\C-c\C-e" 'reb-enter-subexp-mode) |
(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))) |
(define-key reb-mode-map "\C-c\C-u" 'reb-force-update))) |
228 |
|
|
229 |
(defun reb-mode () |
(define-derived-mode reb-mode nil "RE Builder" |
230 |
"Major mode for interactively building Regular Expressions. |
"Major mode for interactively building Regular Expressions." |
231 |
\\{reb-mode-map}" |
(reb-mode-common)) |
|
(interactive) |
|
|
|
|
|
(setq major-mode 'reb-mode |
|
|
mode-name "RE Builder") |
|
|
(use-local-map reb-mode-map) |
|
|
(reb-mode-common) |
|
|
(run-hooks 'reb-mode-hook)) |
|
232 |
|
|
233 |
(define-derived-mode reb-lisp-mode |
(define-derived-mode reb-lisp-mode |
234 |
emacs-lisp-mode "RE Builder Lisp" |
emacs-lisp-mode "RE Builder Lisp" |
235 |
"Major mode for interactively building symbolic Regular Expressions. |
"Major mode for interactively building symbolic Regular Expressions." |
|
\\{reb-lisp-mode-map}" |
|
236 |
(cond ((eq reb-re-syntax 'lisp-re) ; Pull in packages |
(cond ((eq reb-re-syntax 'lisp-re) ; Pull in packages |
237 |
(require 'lisp-re)) ; as needed |
(require 'lisp-re)) ; as needed |
238 |
((eq reb-re-syntax 'sregex) ; sregex is not autoloaded |
((eq reb-re-syntax 'sregex) ; sregex is not autoloaded |
244 |
(define-key reb-lisp-mode-map "\C-c" |
(define-key reb-lisp-mode-map "\C-c" |
245 |
(lookup-key reb-mode-map "\C-c")) |
(lookup-key reb-mode-map "\C-c")) |
246 |
|
|
247 |
(if (boundp 'font-lock-defaults-alist) |
(defvar reb-subexp-mode-map |
248 |
(setq font-lock-defaults-alist |
(let ((m (make-keymap))) |
249 |
(cons (cons 'reb-lisp-mode |
(suppress-keymap m) |
250 |
(cdr (assoc 'emacs-lisp-mode |
;; Again share the "\C-c" keymap for the commands |
251 |
font-lock-defaults-alist))) |
(define-key m "\C-c" (lookup-key reb-mode-map "\C-c")) |
252 |
font-lock-defaults-alist))) |
(define-key m "q" 'reb-quit-subexp-mode) |
253 |
|
(dotimes (digit 10) |
254 |
(defvar reb-subexp-mode-map nil |
(define-key m (int-to-string digit) 'reb-display-subexp)) |
255 |
|
m) |
256 |
"Keymap used by the RE Builder for the subexpression mode.") |
"Keymap used by the RE Builder for the subexpression mode.") |
257 |
|
|
|
(if (not reb-subexp-mode-map) |
|
|
(progn |
|
|
(setq reb-subexp-mode-map (make-sparse-keymap)) |
|
|
(suppress-keymap reb-subexp-mode-map) |
|
|
;; Again share the "\C-c" keymap for the commands |
|
|
(define-key reb-subexp-mode-map "\C-c" |
|
|
(lookup-key reb-mode-map "\C-c")) |
|
|
(define-key reb-subexp-mode-map "q" 'reb-quit-subexp-mode) |
|
|
(mapcar (lambda (digit) |
|
|
(define-key reb-subexp-mode-map (int-to-string digit) |
|
|
'reb-display-subexp)) |
|
|
'(0 1 2 3 4 5 6 7 8 9)))) |
|
|
|
|
258 |
(defun reb-mode-common () |
(defun reb-mode-common () |
259 |
"Setup functions common to functions `reb-mode' and `reb-mode-lisp'." |
"Setup functions common to functions `reb-mode' and `reb-mode-lisp'." |
260 |
|
|
391 |
(defun reb-enter-subexp-mode () |
(defun reb-enter-subexp-mode () |
392 |
"Enter the subexpression mode in the RE Builder." |
"Enter the subexpression mode in the RE Builder." |
393 |
(interactive) |
(interactive) |
|
|
|
394 |
(setq reb-subexp-mode t) |
(setq reb-subexp-mode t) |
395 |
(reb-update-modestring) |
(reb-update-modestring) |
396 |
(use-local-map reb-subexp-mode-map) |
(use-local-map reb-subexp-mode-map) |
413 |
(defun reb-quit-subexp-mode () |
(defun reb-quit-subexp-mode () |
414 |
"Quit the subexpression mode in the RE Builder." |
"Quit the subexpression mode in the RE Builder." |
415 |
(interactive) |
(interactive) |
|
|
|
416 |
(setq reb-subexp-mode nil |
(setq reb-subexp-mode nil |
417 |
reb-subexp-displayed nil) |
reb-subexp-displayed nil) |
418 |
(reb-update-modestring) |
(reb-update-modestring) |