unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: "rms@gnu.org" <rms@gnu.org>, Dmitry Gutov <dgutov@yandex.ru>
Cc: "stefan@marxist.se" <stefan@marxist.se>,
	"46627@debbugs.gnu.org" <46627@debbugs.gnu.org>
Subject: bug#46627: [External] : bug#46627: [PATCH] Add new help command 'describe-command'
Date: Mon, 1 Mar 2021 16:13:33 +0000	[thread overview]
Message-ID: <SA2PR10MB4474A3E14F676A791CE49E7EF39A9@SA2PR10MB4474.namprd10.prod.outlook.com> (raw)
In-Reply-To: <E1lGax4-0002dI-Cg@fencepost.gnu.org>

> There is no need to count.  You just keep typing TAB until you get
> what you want.  When it alternates between all functions and only
> commands, you'll see the number of completions change in an obvious
> way.
> 
> Another advantage is that this gives you both completion spaces
> in every command that reads a function name, not only in
> describe-function.
> 
> We should try this and see what it is like, then judge it.

Having a general ability to switch or transform
the domain of candidates - that is, the initial
set (after filtering with the PREDICATE arg)
before any user filtering by minibuffer input -
is indeed a fine feature.

Icicles has such a toggle, bound to `C-$' during
completion.  It toggles between using the initial
set and the initial set "transformed" in some way.

The default transformation is to remove duplicate
candidates.  (Duplicate candidates can be useful,
in general.)  A given command can define its own
transformation function for this, and bind it to
variable `icicle-transform-function'.

But for something like `C-h f', it makes sense to
have a prefix arg limit the candidates to commands.
For that, there's no need to wait for a general
transform-toggle feature.

And it makes sense to also have a separate command,
`describe-command'.  And to have a prefix arg to it
extend the candidate set to include all functions
(a reverse of the swap of the previous paragraph).
___

As for letting `TAB' switch completion tables or
otherwise transform the initial candidate set:
that too is a possibility.  I'd agree that trying
such ideas and seeing what people think can be a
useful experiment.

Personally, I'd prefer that such trials be done
in the form of 3rd-party efforts.  See what kind
of use and feedback it results in outside Emacs.

"Trials" in Emacs itself are not so great, IMO.
Someone puts something on a branch and invites
trial and feedback.  But the only people who try
it are Emacs Dev aficionados who build Emacs or
pull stuff from Git etc.  That's more for large
developments, like bidi support.

Wrt TAB as a key for this: Sure, try it.  But a
priori I'm not in favor of reusing TAB this way.
TAB should be for something that will be used a
lot and that needs to be quick.  That's not the
case here.

As an example, Icicles, like vanilla Emacs, uses
TAB to complete, but repeating TAB then cycles
among the candidates.  That's an operation that
you can repeat often and quickly.

Emacs's own binding of TAB to scroll *Completions*
is not a good key choice, IMO.  Much better for
scrolling *Completions* is to use the usual keys:
`C-v' and `M-v'.  (It's natural for them to scroll
*Completions* and not the minibuffer itself.)
Icicles does that.

But again - the kind of idea you suggested is just
what we need more of: ideas about extending or
otherwise improving user interaction with the set
of completion candidates.

And again, I agree that the right approach wrt
such ideas is for people to try them out and
provide feedback.  I'd sooner see that happen
with a 3rd-party library than with an Emacs
branch, but I suppose that's a detail. 

  reply	other threads:[~2021-03-01 16:13 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19  1:06 bug#46627: [PATCH] Add new help command 'describe-command' Stefan Kangas
2021-02-19  8:42 ` Eli Zaretskii
2021-02-19 17:42   ` Stefan Kangas
2021-02-19 18:38     ` bug#46627: [External] : " Drew Adams
2021-02-20  3:25       ` Stefan Kangas
2021-02-20  4:25         ` Drew Adams
2021-02-20  8:20           ` Eli Zaretskii
2021-02-20  7:44         ` Eli Zaretskii
2021-02-19 20:05     ` Eli Zaretskii
2021-02-20  4:10       ` Stefan Kangas
2021-02-20  8:18         ` Eli Zaretskii
2021-02-20 17:10           ` Stefan Kangas
2021-02-21 13:08             ` Lars Ingebrigtsen
2021-02-22 15:58             ` Eli Zaretskii
2021-04-28 13:58               ` Stefan Kangas
2021-04-28 14:17                 ` Stefan Kangas
2021-05-02 13:14                 ` Stefan Kangas
2021-02-20 12:56     ` Lars Ingebrigtsen
2021-02-20 12:59       ` Eli Zaretskii
2021-02-20 16:16         ` Eli Zaretskii
2021-02-20 14:04       ` Stefan Kangas
2021-02-20 16:06     ` Richard Stallman
2021-02-20 16:09       ` Eli Zaretskii
2021-02-20 20:06         ` bug#46627: [External] : " Drew Adams
2021-02-20 20:17           ` Eli Zaretskii
2021-02-20 20:54             ` Drew Adams
2021-02-20 16:39       ` Stefan Kangas
2021-02-20 16:49         ` Eli Zaretskii
2021-02-20 20:35           ` bug#46627: [External] : " Drew Adams
2021-02-20 20:46             ` Eli Zaretskii
2021-02-20 21:16               ` Drew Adams
2021-02-21 15:07                 ` Eli Zaretskii
2021-02-21 17:55                   ` Drew Adams
2021-02-21 18:11                     ` Eli Zaretskii
2021-02-21 18:30                       ` Drew Adams
2021-02-26 21:34             ` Drew Adams
2021-02-27  8:04               ` Eli Zaretskii
2021-02-27 17:46                 ` Drew Adams
2021-02-21  6:19         ` Richard Stallman
2021-02-21  7:18           ` Stefan Kangas
2021-02-21 15:27             ` Eli Zaretskii
2021-02-21 16:39               ` Howard Melman
2021-02-21 18:01                 ` bug#46627: [External] : " Drew Adams
2021-02-21 17:01               ` Stefan Kangas
2021-02-21 17:36                 ` Eli Zaretskii
2021-02-21 18:02                   ` Stefan Kangas
2021-02-21 18:21                     ` Eli Zaretskii
2021-02-21 19:57                       ` Dmitry Gutov
2021-02-21 20:13                         ` Eli Zaretskii
2021-02-21 23:46                           ` Dmitry Gutov
2021-02-22 15:18                             ` Eli Zaretskii
2021-02-27 20:38                               ` Dmitry Gutov
2021-02-28 17:27                                 ` Eli Zaretskii
2021-02-28 21:40                                   ` Dmitry Gutov
2021-03-01  6:05                                     ` Eli Zaretskii
2021-03-02  1:40                                       ` Dmitry Gutov
2021-03-02  5:31                                         ` Eli Zaretskii
2021-03-02 12:55                                           ` Dmitry Gutov
2021-03-02 13:47                                             ` Eli Zaretskii
2021-02-21 17:57               ` bug#46627: [External] : " Drew Adams
2021-02-21 17:33             ` Drew Adams
2021-02-21 13:06           ` Lars Ingebrigtsen
2021-02-21  6:27         ` Richard Stallman
2021-02-21  6:10     ` Richard Stallman
2021-02-21  6:27     ` Richard Stallman
2021-02-19 13:12 ` Lars Ingebrigtsen
2021-02-19 18:27   ` bug#46627: [External] : " Drew Adams
2021-02-19 18:43     ` Eli Zaretskii
2021-02-21  6:18     ` Richard Stallman
2021-02-21  6:27     ` Richard Stallman
2021-02-20  6:56 ` Richard Stallman
2021-02-20  7:14   ` Stefan Kangas
2021-02-21  6:19     ` Richard Stallman
2021-02-21  6:27     ` Richard Stallman
2021-02-21  7:17       ` Stefan Kangas
2021-02-22  6:23         ` Richard Stallman
2021-02-24  3:28           ` Stefan Kangas
2021-02-27 18:58           ` Dmitry Gutov
2021-03-01  5:18             ` Richard Stallman
2021-03-01 16:13               ` Drew Adams [this message]
2021-03-02  6:29                 ` bug#46627: [External] : " Richard Stallman
2021-03-02  6:50                   ` Eli Zaretskii
2021-03-03  5:55                     ` Richard Stallman
2021-03-03 15:26                       ` Drew Adams
2021-03-03 16:14                         ` Eli Zaretskii
2021-03-02 16:52                   ` Drew Adams

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=SA2PR10MB4474A3E14F676A791CE49E7EF39A9@SA2PR10MB4474.namprd10.prod.outlook.com \
    --to=drew.adams@oracle.com \
    --cc=46627@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=rms@gnu.org \
    --cc=stefan@marxist.se \
    /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).