[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Assignment of misc packages for emacs

From: Miles Bader
Subject: Re: Assignment of misc packages for emacs
Date: 21 May 2002 19:20:48 +0900

Richard Stallman <address@hidden> writes:
> I think a better idea is to keep the current format
> but put the keys you would type in bold face.  So it would look like
>        Diff: vendor, head, backup, diff, 2 = other, e = idiff
>        Diff: E = imerge

I tried that with actual bold characters, and it seems reasonable -- a
single bold character doesn't stand out all that much, but it can be
seen (using my fonts at least), and has the advantage of not obscuring
the actual labels like some puncuation does.

An alternative would be to use underlining, which would match what many
menu systems use to indicate key-to-letter-in-a-menu-label correspondences.
I also find that underlining makes the keys more obvious, also without
obscuring the labels.

One point about this style: I tried with both one and two spaces as
separators following the commas, and I found it much more readable with
two spaces.


p.s., Here's the code I used to try it (the four lines at the end
      display the various styles):

(defun parenthify-entry (key label)
  (if (eq key (aref label 0))
      (format "(%c)%s" key (substring label 1))
    (format "(%c) %s" key label)))

(defun facify-entry (key label face)
  (if (eq key (aref label 0))
      (format "%s%s"
              (propertize (char-to-string key) 'face face)
              (substring label 1))
    (format "%s = %s" (propertize (char-to-string key) 'face face) label)))

(defun boldify-entry (key label)
  (facify-entry key label 'bold))
(defun undify-entry (key label)
  (facify-entry key label 'underline))

(defun equify-entry (key label)
  (format "%c = %s" key label))

(defun show-menu-string (format-fun)
  (let ((msg "Diff:" ) (sep "  ") (sep2 ",  "))
    (dolist (entry '((?v . "vendor") (?h . "head") (?b . "backup") 
                     (?d . "diff")
                     (?2 . "other")  (?e . "idiff")  (?E . "imerge")))
      (setq msg (concat msg sep (funcall format-fun (car entry) (cdr entry))))
      (setq sep sep2))
    (let ((minibuffer-prompt-properties nil))
      (read-string msg))))

(show-menu-string 'equify-entry)
(show-menu-string 'boldify-entry)
(show-menu-string 'undify-entry)
(show-menu-string 'parenthify-entry)

The secret to creativity is knowing how to hide your sources.
  --Albert Einstein

reply via email to

[Prev in Thread] Current Thread [Next in Thread]