[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111198: * lisp/emacs-lisp/eieio.el:
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111198: * lisp/emacs-lisp/eieio.el: Prettier object pretty-printing. |
Date: |
Tue, 11 Dec 2012 21:16:05 -0500 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111198
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13115
author: Jonas Bernoulli <address@hidden>
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2012-12-11 21:16:05 -0500
message:
* lisp/emacs-lisp/eieio.el: Prettier object pretty-printing.
(eieio-override-prin1): Don't quote kewords and booleans.
(object-write) <eieio-default-superclass>: Don't put closing parens
on new line, avoid needless empty lines, align values that are objects
with the slot keyword (instead of beginning on the same line).
(eieio-list-prin1): Align value with slot keyword; increase
eieio-print-depth before printing members of the list.
modified:
lisp/ChangeLog
lisp/emacs-lisp/eieio.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-12-11 18:52:31 +0000
+++ b/lisp/ChangeLog 2012-12-12 02:16:05 +0000
@@ -1,3 +1,13 @@
+2012-12-12 Jonas Bernoulli <address@hidden>
+
+ * lisp/emacs-lisp/eieio.el: Prettier object pretty-printing (bug#13115).
+ (eieio-override-prin1): Don't quote kewords and booleans.
+ (object-write) <eieio-default-superclass>: Don't put closing parens
+ on new line, avoid needless empty lines, align values that are objects
+ with the slot keyword (instead of beginning on the same line).
+ (eieio-list-prin1): Align value with slot keyword; increase
+ eieio-print-depth before printing members of the list.
+
2012-12-11 Stefan Monnier <address@hidden>
* mail/emacsbug.el (report-emacs-bug): Move the intangible text to
=== modified file 'lisp/emacs-lisp/eieio.el'
--- a/lisp/emacs-lisp/eieio.el 2012-10-25 20:13:16 +0000
+++ b/lisp/emacs-lisp/eieio.el 2012-12-12 02:16:05 +0000
@@ -2850,28 +2850,36 @@
(v (eieio-oref this (car publa)))
)
(unless (or (not i) (equal v (car publd)))
+ (unless (bolp)
+ (princ "\n"))
(princ (make-string (* eieio-print-depth 2) ? ))
(princ (symbol-name i))
- (princ " ")
(if (car publp)
;; Use our public printer
- (funcall (car publp) v)
+ (progn
+ (princ " ")
+ (funcall (car publp) v))
;; Use our generic override prin1 function.
- (eieio-override-prin1 v))
- (princ "\n"))))
+ (princ (if (or (eieio-object-p v)
+ (eieio-object-p (car-safe v)))
+ "\n" " "))
+ (eieio-override-prin1 v)))))
(setq publa (cdr publa) publd (cdr publd)
- publp (cdr publp)))
- (princ (make-string (* eieio-print-depth 2) ? )))
- (princ ")\n")))
+ publp (cdr publp))))
+ (princ ")")
+ (when (= eieio-print-depth 0)
+ (princ "\n"))))
(defun eieio-override-prin1 (thing)
"Perform a `prin1' on THING taking advantage of object knowledge."
(cond ((eieio-object-p thing)
(object-write thing))
- ((listp thing)
+ ((consp thing)
(eieio-list-prin1 thing))
((class-p thing)
(princ (class-name thing)))
+ ((or (keywordp thing) (booleanp thing))
+ (prin1 thing))
((symbolp thing)
(princ (concat "'" (symbol-name thing))))
(t (prin1 thing))))
@@ -2882,16 +2890,16 @@
(progn
(princ "'")
(prin1 list))
- (princ "(list ")
- (if (eieio-object-p (car list)) (princ "\n "))
- (while list
- (if (eieio-object-p (car list))
- (object-write (car list))
- (princ "'")
- (prin1 (car list)))
- (princ " ")
- (setq list (cdr list)))
(princ (make-string (* eieio-print-depth 2) ? ))
+ (princ "(list")
+ (let ((eieio-print-depth (1+ eieio-print-depth)))
+ (while list
+ (princ "\n")
+ (if (eieio-object-p (car list))
+ (object-write (car list))
+ (princ (make-string (* eieio-print-depth 2) ? ))
+ (eieio-override-prin1 (car list)))
+ (setq list (cdr list))))
(princ ")")))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111198: * lisp/emacs-lisp/eieio.el: Prettier object pretty-printing.,
Stefan Monnier <=