Mercurial > hg > xemacs-beta
diff lisp/lisp-mode.el @ 404:2f8bb876ab1d r21-2-32
Import from CVS: tag r21-2-32
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:16:07 +0200 |
parents | 74fd4e045ea6 |
children | b8cc9ab3f761 |
line wrap: on
line diff
--- a/lisp/lisp-mode.el Mon Aug 13 11:15:00 2007 +0200 +++ b/lisp/lisp-mode.el Mon Aug 13 11:16:07 2007 +0200 @@ -1,7 +1,7 @@ ;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands. ;; Copyright (C) 1985, 1996, 1997 Free Software Foundation, Inc. -;; Copyright (C) 1995 Tinker Systems +;; Copyright (C) 1995 Tinker Systems. ;; Maintainer: FSF ;; Keywords: lisp, languages, dumped @@ -32,8 +32,6 @@ ;; The base major mode for editing Lisp code (used also for Emacs Lisp). ;; This mode is documented in the Emacs manual -;; July/05/97 slb Converted to use easymenu. - ;;; Code: (defgroup lisp nil @@ -46,55 +44,57 @@ (defvar lisp-mode-abbrev-table nil) ;; XEmacs change -(defvar lisp-interaction-mode-popup-menu nil) -(defvar lisp-interaction-mode-popup-menu-1 +(defvar lisp-interaction-mode-popup-menu (purecopy '("Lisp-Interaction" - ["Evaluate Last S-expression" eval-last-sexp] - ["Evaluate Entire Buffer" eval-current-buffer] - ["Evaluate Region" eval-region + ["Evaluate Last %_S-expression" eval-last-sexp] + ["Evaluate %_Whole Buffer" eval-current-buffer] + ["Evaluate Re%_gion" eval-region :active (region-exists-p)] "---" - ["Evaluate This Defun" eval-defun] - ;; FSF says "Instrument Function for Debugging" - ["Debug This Defun" edebug-defun] + ["%_Evaluate This Defun" eval-defun] + ["%_Instrument This Defun for Debugging" edebug-defun] "---" - ["Trace a Function" trace-function-background] - ["Untrace All Functions" untrace-all + ["Find %_Function Source..." find-function + :active (fboundp 'find-function)] + ["Find %_Variable Source..." find-variable + :active (fboundp 'find-variable)] + ["%_Trace Function..." trace-function-background] + ["%_Untrace All Functions" untrace-all :active (fboundp 'untrace-all)] "---" - ["Comment Out Region" comment-region + ["%_Comment Out Region" comment-region :active (region-exists-p)] - ["Indent Region" indent-region - :active (region-exists-p)] - ["Indent Line" lisp-indent-line] "---" - ["Debug On Error" (setq debug-on-error (not debug-on-error)) - :style toggle :selected debug-on-error] - ["Debug On Quit" (setq debug-on-quit (not debug-on-quit)) - :style toggle :selected debug-on-quit] - ["Debug on Signal" (setq debug-on-signal (not debug-on-signal)) - :style toggle :selected debug-on-signal] + ["Indent %_Line or Region" + (if (region-exists-p) + (call-interactively 'indent-region) + (call-interactively 'lisp-indent-line))] + ["Indent B%_alanced Expression" indent-sexp] + ["Indent %_Defun" + (progn + (beginning-of-defun) + (indent-sexp))] + "---" + "Look for debug-on-error under Options->General" ))) -(defvar emacs-lisp-mode-popup-menu nil) -(defvar emacs-lisp-mode-popup-menu-1 +(defvar emacs-lisp-mode-popup-menu (purecopy (nconc '("Emacs-Lisp" - ["Byte-compile This File" emacs-lisp-byte-compile] - ["Byte-compile/load This" emacs-lisp-byte-compile-and-load] - ["Byte-recompile Directory..." byte-recompile-directory] + ["%_Byte-Compile This File" emacs-lisp-byte-compile] + ["B%_yte-Compile/Load This File" emacs-lisp-byte-compile-and-load] + ["Byte-%_Recompile Directory..." byte-recompile-directory] "---") - (cdr lisp-interaction-mode-popup-menu-1)))) + (cdr lisp-interaction-mode-popup-menu)))) ;Don't have a menubar entry in Lisp Interaction mode. Otherwise, the ;*scratch* buffer has a Lisp menubar item! Very confusing. ;(defvar lisp-interaction-mode-menubar-menu ; (purecopy (cons "Lisp" (cdr lisp-interaction-mode-popup-menu)))) -(defvar emacs-lisp-mode-menubar-menu nil) -(defvar emacs-lisp-mode-menubar-menu-1 - (purecopy (cons "Lisp" (cdr emacs-lisp-mode-popup-menu-1)))) +(defvar emacs-lisp-mode-menubar-menu + (purecopy (cons "%_Lisp" (cdr emacs-lisp-mode-popup-menu)))) (if (not emacs-lisp-mode-syntax-table) (let ((i 0)) @@ -274,19 +274,15 @@ (set-syntax-table emacs-lisp-mode-syntax-table) ;; XEmacs changes (setq major-mode 'emacs-lisp-mode - ;; mode-popup-menu emacs-lisp-mode-popup-menu + mode-popup-menu emacs-lisp-mode-popup-menu mode-name "Emacs-Lisp") - ;; (if (and (featurep 'menubar) - ;; current-menubar) - ;; (progn + (if (and (featurep 'menubar) + current-menubar) + (progn ;; make a local copy of the menubar, so our modes don't ;; change the global menubar - ;; (set-buffer-menubar current-menubar) - ;; (add-submenu nil emacs-lisp-mode-menubar-menu))) - (unless emacs-lisp-mode-popup-menu - (easy-menu-define emacs-lisp-mode-popup-menu emacs-lisp-mode-map "" - emacs-lisp-mode-popup-menu-1)) - (easy-menu-add emacs-lisp-mode-popup-menu) + (set-buffer-menubar current-menubar) + (add-submenu nil emacs-lisp-mode-menubar-menu))) (lisp-mode-variables nil) (run-hooks 'emacs-lisp-mode-hook)) @@ -366,14 +362,7 @@ (use-local-map lisp-interaction-mode-map) (setq major-mode 'lisp-interaction-mode) (setq mode-name "Lisp Interaction") - ;; XEmacs change - ;; (setq mode-popup-menu lisp-interaction-mode-popup-menu) - (unless lisp-interaction-mode-popup-menu - (easy-menu-define lisp-interaction-mode-popup-menu - lisp-interaction-mode-map - "" - lisp-interaction-mode-popup-menu-1)) - (easy-menu-add lisp-interaction-mode-popup-menu) + (setq mode-popup-menu lisp-interaction-mode-popup-menu) (set-syntax-table emacs-lisp-mode-syntax-table) (lisp-mode-variables nil) @@ -760,6 +749,7 @@ (put 'let 'lisp-indent-function 1) (put 'let* 'lisp-indent-function 1) (put 'let-specifier 'lisp-indent-function 1) +(put 'flet 'lisp-indent-function 1) (put 'while 'lisp-indent-function 1) (put 'if 'lisp-indent-function 2) (put 'catch 'lisp-indent-function 1)