changeset 45697:234b16d90545

(describe-text-properties): Sort the output by the size of the values. Put `font-lock-face' property on property names.
author Colin Walters <walters@gnu.org>
date Sat, 08 Jun 2002 22:12:14 +0000
parents a5b3e8f94dbf
children 85a6d63fb018
files lisp/descr-text.el
diffstat 1 files changed, 24 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/descr-text.el	Sat Jun 08 22:11:57 2002 +0000
+++ b/lisp/descr-text.el	Sat Jun 08 22:12:14 2002 +0000
@@ -98,10 +98,28 @@
 PROPERTIES should be a list of overlay or text properties.
 The `category' property is made into a widget button that call 
 `describe-text-category' when pushed."
-  (while properties
-    (widget-insert (format "  %-20s " (car properties)))
-    (let ((key (nth 0 properties))
-	  (value (nth 1 properties)))
+  ;; Sort the properties by the size of their value.
+  (dolist (elt (sort (let ((ret nil)
+			   (key nil)
+			   (val nil)
+			   (len nil))
+		       (while properties
+			 (setq key (pop properties)
+			       val (pop properties)
+			       len 0)
+			 (unless (or (eq key 'category)
+				     (widgetp val))
+			   (setq val (pp-to-string val)
+				 len (length val)))
+			 (push (list key val len) ret))
+		       ret)
+		     (lambda (a b)
+		       (< (nth 2 a)
+			  (nth 2 b)))))
+    (let ((key (nth 0 elt))
+	  (value (nth 1 elt)))
+      (widget-insert (propertize (format "  %-20s" key)
+				 'font-lock-face 'italic))
       (cond ((eq key 'category)
 	     (widget-create 'link 
 			    :notify `(lambda (&rest ignore)
@@ -110,9 +128,8 @@
 	    ((widgetp value)
 	     (describe-text-widget value))
 	    (t
-	     (describe-text-sexp value))))
-    (widget-insert "\n")
-    (setq properties (cdr (cdr properties)))))
+	     (widget-insert value))))
+    (widget-insert "\n")))
 
 ;;; Describe-Text Commands.