Mercurial > emacs
changeset 55805:a4c5317be59a
* emacs-lisp/lisp-mode.el (indent-pp-sexp): New fun.
(emacs-lisp-mode-map, lisp-interaction-mode-map):
Bind C-M-q to `indent-pp-sexp'.
(eval-last-sexp-print-value): Print additionally the value returned by
`eval-expression-print-format'.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Fri, 28 May 2004 21:09:05 +0000 |
parents | 9766648e58a2 |
children | 5e730ddfd23a |
files | lisp/emacs-lisp/lisp-mode.el |
diffstat | 1 files changed, 18 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp-mode.el Fri May 28 21:07:47 2004 +0000 +++ b/lisp/emacs-lisp/lisp-mode.el Fri May 28 21:09:05 2004 +0000 @@ -239,6 +239,7 @@ (set-keymap-parent emacs-lisp-mode-map lisp-mode-shared-map) (define-key emacs-lisp-mode-map "\e\t" 'lisp-complete-symbol) (define-key emacs-lisp-mode-map "\e\C-x" 'eval-defun) + (define-key emacs-lisp-mode-map "\e\C-q" 'indent-pp-sexp) (define-key emacs-lisp-mode-map [menu-bar] (make-sparse-keymap)) (define-key emacs-lisp-mode-map [menu-bar emacs-lisp] (cons "Emacs-Lisp" map)) @@ -377,6 +378,7 @@ (let ((map (make-sparse-keymap))) (set-keymap-parent map lisp-mode-shared-map) (define-key map "\e\C-x" 'eval-defun) + (define-key map "\e\C-q" 'indent-pp-sexp) (define-key map "\e\t" 'lisp-complete-symbol) (define-key map "\n" 'eval-print-last-sexp) map) @@ -532,13 +534,13 @@ (prin1-to-string value))) (print-length eval-expression-print-length) (print-level eval-expression-print-level) - (char-string (prin1-char value)) (beg (point)) end) (prog1 (prin1 value) - (if (and (eq standard-output t) char-string) - (princ (concat " = " char-string))) + (if (eq standard-output t) + (let ((str (eval-expression-print-format value))) + (if str (princ str)))) (setq end (point)) (when (and (bufferp standard-output) (or (not (null print-length)) @@ -1092,6 +1094,19 @@ (indent-sexp endmark) (set-marker endmark nil)))) +(defun indent-pp-sexp (&optional arg) + "Indent each line of the list or, with prefix ARG, pretty-printify the list." + (interactive "P") + (if arg + (save-excursion + (save-restriction + (narrow-to-region (point) (progn (forward-sexp 1) (point))) + (pp-buffer) + (goto-char (point-max)) + (if (eq (char-before) ?\n) + (delete-char -1))))) + (indent-sexp)) + ;;;; Lisp paragraph filling commands. (defcustom emacs-lisp-docstring-fill-column 65