unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Stefan Monnier'" <monnier@iro.umontreal.ca>
Cc: 8951@debbugs.gnu.org
Subject: bug#8951: 24.0.50; [PATCH] enhancement request: buttonize key names
Date: Wed, 6 Jul 2011 12:55:05 -0700	[thread overview]
Message-ID: <EF83D513EDCA4E24BFA4AAA97E76AC67@us.oracle.com> (raw)
In-Reply-To: <jwvzkkrqmpq.fsf-monnier+emacs@gnu.org>

> >> getting rid of the C version and only using the new Elisp version.
> > See the emacs-devel thread, where I addressed both of these things.
> > http://lists.gnu.org/archive/html/emacs-devel/2011-06/msg01081.html
> 
> I don't think that quite addresses it.  But, I guess it does 
> indirectly: you apparently haven't found problematic cases
> that require distinguishing help-substitute-command-keys from
> substitute-command-keys.  Instead you just personally prefer 
> to keep the option whether to buttonize or not.

Yes, I suggested that `substitute-command-keys' itself be modified to accept the
optional argument.  I did not try to replace `substitute-command-keys' directly
with a version that has the optional arg to buttonize, because (a) I didn't want
to hack the C code and (b) I didn't want to bother writing the \\{...} code in
Lisp.

> > I wrote Lisp, but if someone wants to instead patch the C code for
> > `substitute-command-keys' then go for it.
> 
> No, I'm not interested in making this C code more complicated.  I want
> to go the other way around.

Glad to hear that.  That's my preference too.

> > The Lisp version I wrote still invokes the original C code for the
> > \\{...} case.  I did not try to rewrite that in Lisp.
> 
> I see.  It should be pretty easy to do, easy exporting the needed
> underlying C function to Elisp, or rewriting it in Elisp (there's no
> good reason to have describe-buffer-bindings written in C, really).

Please, go for it.  I agree.

> > 1. Keep the Lisp code I wrote (or similar), renaming it to
> > `substitute-command-keys'.
> 
> Sounds good.
> 
> > 2. Simplify the original C code to handle just the \\{...} case,
> > rename that function, and use it in #1 to handle the \\{...} parts
> > (just as now, but under its new, {}-specific name).
> 
> Sounds good.
> 
> > Alternatively, you can write #2 in Lisp, if you like.
> 
> Sounds good as well.
> 
> > Wrt your question of whether "there are places where such buttons
> > become annoying": I would say that it does not matter whether there
> > are currently any such places.  There is no reason not to treat the
> > buttonizing as optional.
> 
> Of course there's the reason that providing a choice is never free, so
> we should only provide the choice if there's a good reason for it.

I gave this reason to make it optional:

\\[], \\<>, \\{} are about mapping command names to corresponding key
descriptions - nothing more.  That in itself does not say anything about help
buffers and interactivity (clicking, RET).  The function is just a string
transducer.

The common use case for that is of course doc.  And the common use case for the
doc use case is a help buffer.

But a string of doc is more general than a help buffer, both in terms of string
vs buffer and in terms of the need for button text properties (interactivity).
There could be applications of this function to produce a readable string that
do not involve a button-clicking interactive context.

"providing a choice is never free" -

What's the cost?  And what's the cost of always doing the extra lifting of
creating buttons?

Code maintenance will be at least as easy if it is optional, possibly easier
since the additional buttonizing part is well separated.  And not creating
buttons (properties) saves a little time and memory (but that's probably not
very significant).

No, I don't feel strongly about making buttonizing optional.  But I don't see
why you wouldn't do that.






  reply	other threads:[~2011-07-06 19:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-27 19:13 bug#44909: Hyperlinks gone for first story of two-storied *Help* buffers 積丹尼 Dan Jacobson
2020-11-28  7:39 ` Eli Zaretskii
2020-11-28  7:56   ` Stefan Kangas
2011-06-28 16:38     ` bug#8951: 24.0.50; [PATCH] enhancement request: buttonize key names Drew Adams
2011-07-04 20:28       ` Stefan Monnier
2011-07-04 21:08         ` Drew Adams
2011-07-06 18:49           ` Stefan Monnier
2011-07-06 19:55             ` Drew Adams [this message]
2011-07-08 19:07               ` Stefan Monnier
2011-07-08 19:20                 ` Drew Adams
2019-06-27 16:35                   ` Lars Ingebrigtsen
2021-10-23  0:46         ` Stefan Kangas
2021-10-24 13:36           ` Lars Ingebrigtsen
2021-10-24 13:54             ` Stefan Kangas
2021-10-24 14:15               ` Lars Ingebrigtsen
2021-10-24 14:56                 ` Stefan Kangas
2021-10-24 21:07           ` bug#8951: [External] : " Drew Adams
2021-10-24 21:37             ` Stefan Kangas
2021-10-24 22:05               ` Drew Adams
2021-10-24 22:24                 ` Stefan Kangas
2021-10-24 22:47                   ` Drew Adams
2021-10-24 23:15                     ` Stefan Kangas
2021-10-25  1:32                       ` Drew Adams
2021-10-25  2:37                         ` Stefan Kangas
2020-11-28 20:45       ` bug#8951: bug#44909: Hyperlinks gone for first story of two-storied *Help* buffers 積丹尼 Dan Jacobson
2020-11-29 10:25     ` Lars Ingebrigtsen

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=EF83D513EDCA4E24BFA4AAA97E76AC67@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=8951@debbugs.gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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).