# HG changeset patch # User Colin Walters # Date 1023574334 0 # Node ID 234b16d905455b20aa7dc2e17cca82dd70d573f1 # Parent a5b3e8f94dbf134249ffc8d3a3aa01030e9f9f65 (describe-text-properties): Sort the output by the size of the values. Put `font-lock-face' property on property names. diff -r a5b3e8f94dbf -r 234b16d90545 lisp/descr-text.el --- 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.