(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)
: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