unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: storm@cua.dk (Kim F. Storm)
Cc: Chong Yidong <cyd@stupidchicken.com>, emacs-devel@gnu.org
Subject: Re: tweak to apropos-command display
Date: Tue, 22 Feb 2005 22:46:01 +0100	[thread overview]
Message-ID: <m3d5usgteu.fsf@kfs-l.imdomain.dk> (raw)
In-Reply-To: <E1D3eV0-0000K3-Ln@fencepost.gnu.org> (Richard Stallman's message of "Tue, 22 Feb 2005 13:11:06 -0500")

Richard Stallman <rms@gnu.org> writes:

>     When apropos-command is displaying the keybindings associated with a
>     command, it often runs past the edge of the screen (esp. when displaying
>     M-x COMMAND RET) This makes the output very difficult to read.
>
> How about this change instead?
>
> ! 		 (insert "(invoke using M-x)")))


I like M-x ... RET better.

The following patch does that.

It also improves handling of menu bar entries in two ways:

1) If menu-bar-mode is disabled, it doesn't mention menu bar bindings.

2) It pretty prints menu bar entries like this:
    e.g. "File Menu" rather than "<menu-bar> <file> <new-file>"


*** apropos.el	12 Feb 2005 14:46:58 +0100	1.101
--- apropos.el	22 Feb 2005 22:42:30 +0100	
***************
*** 795,801 ****
      (with-output-to-temp-buffer "*Apropos*"
        (let ((p apropos-accumulator)
  	    (old-buffer (current-buffer))
! 	    symbol item)
  	(set-buffer standard-output)
  	(apropos-mode)
  	(if (display-mouse-p)
--- 795,801 ----
      (with-output-to-temp-buffer "*Apropos*"
        (let ((p apropos-accumulator)
  	    (old-buffer (current-buffer))
! 	    symbol item menu-items)
  	(set-buffer standard-output)
  	(apropos-mode)
  	(if (display-mouse-p)
***************
*** 839,848 ****
  			     (i 0)
  			     loser)
  			 (while (< i (length key))
! 			   (if (or (framep (aref key i))
! 				   (bufferp (aref key i)))
  			       (setq loser t))
! 			   (setq i (1+ i)))
  			 (or loser
  			     (setq filtered (cons key filtered))))
  		       (setq keys (cdr keys)))
--- 839,853 ----
  			     (i 0)
  			     loser)
  			 (while (< i (length key))
! 			   (let ((elt (aref key i)))
! 			     (cond
! 			      ((or (framep elt) (bufferp elt))
  			       (setq loser t))
! 			      ((and (= i 0) (eq elt 'menu-bar))
! 			       (if menu-bar-mode
! 				   (setq menu-items (cons key menu-items))
! 				 (setq loser t)))))
! 			   (setq i (if loser (length key) (1+ i))))
  			 (or loser
  			     (setq filtered (cons key filtered))))
  		       (setq keys (cdr keys)))
***************
*** 852,858 ****
  		    (mapconcat
  		     (lambda (key)
  		       (setq key (condition-case ()
! 				     (key-description key)
  				   (error)))
  		       (if apropos-keybinding-face
  			   (put-text-property 0 (length key)
--- 857,871 ----
  		    (mapconcat
  		     (lambda (key)
  		       (setq key (condition-case ()
! 				     (if (and (memq key menu-items)
! 					      (> (length key) 1)
! 					      (symbolp (aref key 1)))
! 					 (let ((m (symbol-name (aref key 1)))
! 					       (case-fold-search t))
! 					   (if (string-match "^\\(.*\\)-menu$" m)
! 					       (setq m (match-string 1 m)))
! 					   (format "%s Menu" (capitalize m)))
! 				       (key-description key))
  				   (error)))
  		       (if apropos-keybinding-face
  			   (put-text-property 0 (length key)
***************
*** 860,872 ****
  					      key))
  		       key)
  		     item ", "))
! 		 (insert "M-x")
! 		 (put-text-property (- (point) 3) (point)
! 				    'face apropos-keybinding-face)
! 		 (insert " " (symbol-name symbol) " ")
! 		 (insert "RET")
! 		 (put-text-property (- (point) 3) (point)
! 				    'face apropos-keybinding-face)))
  	  (terpri)
  	  (apropos-print-doc 2
  			     (if (commandp symbol)
--- 873,884 ----
  					      key))
  		       key)
  		     item ", "))
! 		 (insert "M-x ... RET")
! 		 (when apropos-keybinding-face
! 		   (put-text-property (- (point) 11) (- (point) 8)
! 				      'face apropos-keybinding-face)
! 		   (put-text-property (- (point) 3) (point)
! 				      'face apropos-keybinding-face))))
  	  (terpri)
  	  (apropos-print-doc 2
  			     (if (commandp symbol)

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

  parent reply	other threads:[~2005-02-22 21:46 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-21 14:35 tweak to apropos-command display Chong Yidong
2005-02-21 15:04 ` Kim F. Storm
2005-02-21 16:26   ` Chong Yidong
2005-02-21 15:14 ` Stefan
2005-02-21 16:36   ` Chong Yidong
2005-02-22 18:11 ` Richard Stallman
2005-02-22 20:36   ` Kevin Rodgers
2005-02-22 21:46   ` Kim F. Storm [this message]
2005-02-22 22:01     ` David Kastrup
2005-02-22 22:28       ` Kim F. Storm
2005-02-28 12:14       ` Tweak to key-description for menu bindings (was Re: tweak to apropos-command display) Kim F. Storm
2005-02-28 12:55         ` Tweak to key-description for menu bindings David Kastrup
2005-03-01 23:36           ` Kim F. Storm
2005-02-28 21:53         ` Tweak to key-description for menu bindings (was Re: tweak to apropos-command display) Richard Stallman
2005-02-28 22:47           ` Tweak to key-description for menu bindings Kim F. Storm
2005-02-22 22:13     ` tweak to apropos-command display Stefan Monnier
2005-02-22 22:31       ` Kim F. Storm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3d5usgteu.fsf@kfs-l.imdomain.dk \
    --to=storm@cua.dk \
    --cc=cyd@stupidchicken.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).