changeset 33480:618e348d3257

(scheme-program-name): New variable (originally in cmuscheme).
author Dave Love <fx@gnu.org>
date Tue, 14 Nov 2000 14:33:29 +0000
parents 9eec4a620afc
children 8af1f6c81e70
files lisp/progmodes/scheme.el
diffstat 1 files changed, 21 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/scheme.el	Tue Nov 14 12:58:47 2000 +0000
+++ b/lisp/progmodes/scheme.el	Tue Nov 14 14:33:29 2000 +0000
@@ -171,28 +171,22 @@
 
 (defvar scheme-mode-line-process "")
 
-(defvar scheme-mode-map nil
-  "Keymap for Scheme mode.
-All commands in `lisp-mode-shared-map' are inherited by this map.")
-
-(unless scheme-mode-map
+(defvar scheme-mode-map
   (let ((map (make-sparse-keymap "Scheme")))
-    (setq scheme-mode-map (make-sparse-keymap))
-    (set-keymap-parent scheme-mode-map lisp-mode-shared-map)
-    (define-key scheme-mode-map [menu-bar] (make-sparse-keymap))
-    (define-key scheme-mode-map [menu-bar scheme]
-      (cons "Scheme" map))
-    (define-key map [run-scheme] '("Run Inferior Scheme" . run-scheme))
-    (define-key map [uncomment-region]
-      '("Uncomment Out Region" . (lambda (beg end)
-                                   (interactive "r")
-                                   (comment-region beg end '(4)))))
-    (define-key map [comment-region] '("Comment Out Region" . comment-region))
-    (define-key map [indent-region] '("Indent Region" . indent-region))
-    (define-key map [indent-line] '("Indent Line" . lisp-indent-line))
-    (put 'comment-region 'menu-enable 'mark-active)
-    (put 'uncomment-region 'menu-enable 'mark-active)
-    (put 'indent-region 'menu-enable 'mark-active)))
+    (set-keymap-parent map lisp-mode-shared-map)
+    (define-key map [menu-bar scheme] 
+      (cons "Scheme"
+	    ;; Copy the shared menu rather than inheriting it, so that
+	    ;; we can put the Scheme-specific items at the end.
+	    (let ((menu (copy-keymap lisp-shared-menu)))
+	      (define-key-after menu [s1] '("--"))
+	      (define-key-after menu [run-scheme]
+		'("Run Inferior Scheme" . run-scheme))
+	      menu)))
+    map)
+  "Keymap for Scheme mode.
+All items in `lisp-mode-shared-map' and `lisp-shared-menu' are copied
+into this map.")
 
 ;; Used by cmuscheme
 (defun scheme-mode-commands (map)
@@ -264,6 +258,12 @@
   :type 'hook
   :group 'scheme)
 
+;; This is shared by cmuscheme and xscheme.
+(defcustom scheme-program-name "scheme"
+  "*Program invoked by the `run-scheme' command."
+  :type 'string
+  :group 'scheme)
+
 (defvar dsssl-imenu-generic-expression
   ;; Perhaps this should also look for the style-sheet DTD tags.  I'm
   ;; not sure it's the best way to organize it; perhaps one type