summaryrefslogtreecommitdiff
path: root/lisp/cmuscheme.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2000-03-08 23:55:36 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2000-03-08 23:55:36 +0000
commite3f9c7f8fcccc19df43d0326664fcf4c1ea918a5 (patch)
tree9379d27ac05f3ebe6838a3789eeac86d7c104efc /lisp/cmuscheme.el
parenta9853251a342e86260db1005fb0b55639ad7a426 (diff)
downloademacs-e3f9c7f8fcccc19df43d0326664fcf4c1ea918a5.tar.gz
(inferior-scheme-mode-map): Define it independently
from comint-mode-map, so we can just inherit from it. Also, move the initialization into the `defvar' since there's no docstring anyway and it's fairly short. (inferior-scheme-mode): Define it as derived-mode: the code is shorter and this way we inherit from comint-mode-map rather than copying it.
Diffstat (limited to 'lisp/cmuscheme.el')
-rw-r--r--lisp/cmuscheme.el29
1 files changed, 10 insertions, 19 deletions
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el
index a3e1ab5d9f7..71040bd4030 100644
--- a/lisp/cmuscheme.el
+++ b/lisp/cmuscheme.el
@@ -109,17 +109,14 @@
:type 'hook
:group 'cmuscheme)
-(defvar inferior-scheme-mode-map nil)
-
-(cond ((not inferior-scheme-mode-map)
- (setq inferior-scheme-mode-map
- (copy-keymap comint-mode-map))
- (define-key inferior-scheme-mode-map "\M-\C-x" ;gnu convention
- 'scheme-send-definition)
- (define-key inferior-scheme-mode-map "\C-x\C-e" 'scheme-send-last-sexp)
- (define-key inferior-scheme-mode-map "\C-c\C-l" 'scheme-load-file)
- (define-key inferior-scheme-mode-map "\C-c\C-k" 'scheme-compile-file)
- (scheme-mode-commands inferior-scheme-mode-map)))
+(defvar inferior-scheme-mode-map
+ (let ((m (make-sparse-keymap)))
+ (define-key m "\M-\C-x" 'scheme-send-definition) ;gnu convention
+ (define-key m "\C-x\C-e" 'scheme-send-last-sexp)
+ (define-key m "\C-c\C-l" 'scheme-load-file)
+ (define-key m "\C-c\C-k" 'scheme-compile-file)
+ (scheme-mode-commands m)
+ m))
;; Install the process communication commands in the scheme-mode keymap.
(define-key scheme-mode-map "\M-\C-x" 'scheme-send-definition);gnu convention
@@ -160,7 +157,7 @@
(defvar scheme-buffer)
-(defun inferior-scheme-mode ()
+(define-derived-mode inferior-scheme-mode comint-mode "Inferior Scheme"
"Major mode for interacting with an inferior Scheme process.
The following commands are available:
@@ -197,18 +194,12 @@ C-M-q does Tab on each line starting within following expression.
Paragraphs are separated only by blank lines. Semicolons start comments.
If you accidentally suspend your process, use \\[comint-continue-subjob]
to continue it."
- (interactive)
- (comint-mode)
;; Customise in inferior-scheme-mode-hook
(setq comint-prompt-regexp "^[^>\n]*>+ *") ; OK for cscheme, oaklisp, T,...
(scheme-mode-variables)
- (setq major-mode 'inferior-scheme-mode)
- (setq mode-name "Inferior Scheme")
(setq mode-line-process '(":%s"))
- (use-local-map inferior-scheme-mode-map)
(setq comint-input-filter (function scheme-input-filter))
- (setq comint-get-old-input (function scheme-get-old-input))
- (run-hooks 'inferior-scheme-mode-hook))
+ (setq comint-get-old-input (function scheme-get-old-input)))
(defcustom inferior-scheme-filter-regexp "\\`\\s *\\S ?\\S ?\\s *\\'"
"*Input matching this regexp are not saved on the history list.