Mercurial > emacs
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.