unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: philipk@posteo.net, emacs-devel@gnu.org
Subject: Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico
Date: Sat, 10 Apr 2021 10:09:54 +0300	[thread overview]
Message-ID: <83blam7gzh.fsf@gnu.org> (raw)
In-Reply-To: <16784f40-b959-9a84-65d4-93b71d1bebec@yandex.ru> (message from Dmitry Gutov on Sat, 10 Apr 2021 02:12:51 +0300)

> Cc: philipk@posteo.net, emacs-devel@gnu.org
> From: Dmitry Gutov <dgutov@yandex.ru>
> Date: Sat, 10 Apr 2021 02:12:51 +0300
> 
> > I don't think I understand how xref-show-definitions-completing-read
> > is different from, say, read-file-name.  Can you explain?
> 
> We've touched on this previously in the poll/discussion about the default:
> 
> https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00029.html
> 
> The values which xref-show-definitions-completing-read asks you to 
> choose from are relatively complex, and hard to type out.
> 
> Further, there's often only 2-3 values to choose from (in the Elisp's 
> case, at least), so choosing the first one should be a frequent enough 
> occasion.
> 
> With a selection-based menu you look at all options and make a choice: 
> often just press RET; maybe press TAB, or C-n, or <down> a few times 
> before that.
> 
> With completing-read, you have to press TAB first, to see the choices, 
> and then type some of your choice's contents, keeping in mind perhaps 
> its distinguishing characteristics. That's simply more effort than the 
> other approach.
> 
> File name completion is different because you're not as likely to simply 
> choose the first option, there can be a *lot* of files in the dir, and 
> typing an average file name is much easier.
> 
> Mind you, I generally prefer completion UIs that show the options before 
> you start typing, but xref-show-definitions-completing-read makes a 
> really strong case for it. Which is unfortunate, because otherwise it's 
> my #1 choice for xref-show-definitions-function's default value, and 
> changing Emacs's completion UI is not in the cards in any near future.
> 
> So I would only be happy if you disagree with this assessment.

I think our interpretation of "completion vs selection" are different,
at least to some extent.  For me, completion is for when you (almost)
know what you want to type, and type enough of it to have a single TAB
more or less do the rest of the job.  IOW, it's a typing-saving tool.
Selection is for when you don't know what to type, and need the full
list to choose from.  IOW, it's a discovery tool.

With that in mind, completion for symbols in invoking M-. and
completion for file names in invoking some file-related command have
the same traits, at least for me.  Where selection is needed, we pop
up the XREF buffer at the end.  This default operation makes sense to
me.  By contrast, using xref-show-definitions-completing-read, I'm
asked to choose twice: first in a "normal" completion context, then
again in a strange way (it says "Choose" without showing me anything
to choose from, and I need to type TAB to see a *Completions* buffer).
I guess to each their own, but the latter method strikes me as weird
and inconvenient.  IMO, its place is in Company-style "completion"
when writing code -- there one would like to see the list of
pertinents alternatives to select from without typing anything, not
when the user invokes a command and needs help in typing as few
characters as possible.



  parent reply	other threads:[~2021-04-10  7:09 UTC|newest]

Thread overview: 178+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-05 10:22 [ELPA] New package: vertico Daniel Mendler
2021-04-05 14:27 ` Manuel Uberti
2021-04-05 18:30   ` Stepping Back: A Wealth Of Completion systems " T.V Raman
2021-04-05 20:49     ` Philip Kaludercic
2021-04-05 20:55       ` T.V Raman
2021-04-06  6:45       ` Arthur Miller
2021-04-06 15:15       ` Eric Abrahamsen
2021-04-06 15:56         ` Stefan Monnier
2021-04-07 12:09       ` Gregory Heytings
2021-04-07 12:23         ` Joost Kremers
2021-04-07 12:56           ` Daniel Mendler
2021-04-07 18:55           ` Jean Louis
2021-04-07 13:05         ` Yuri Khan
2021-04-07 13:45           ` Eli Zaretskii
2021-04-07 14:15         ` Philip Kaludercic
     [not found]           ` <87eefm5fzl.fsf@posteo.net>
     [not found]             ` <3ec7e2e58a106c77370d@heytings.org>
2021-04-07 14:33               ` Philip Kaludercic
2021-04-07 15:17           ` Daniel Mendler
2021-04-07 16:14             ` Stefan Monnier
2021-04-07 16:32               ` Daniel Mendler
2021-04-07 16:20             ` Philip Kaludercic
2021-04-07 16:57               ` Daniel Mendler
2021-04-07 18:19                 ` [External] : " Drew Adams
2021-04-07 19:13                 ` Philip Kaludercic
2021-04-07 19:47                   ` Jean Louis
2021-04-07 20:03                   ` Daniel Mendler
2021-04-07 22:31                     ` Philip Kaludercic
2021-04-09  6:21                     ` Tassilo Horn
2021-04-09  8:53                       ` Daniel Mendler
2021-04-09 17:22                         ` [External] : " Drew Adams
2021-04-09 18:51                         ` Tassilo Horn
2021-04-07 23:07                   ` [External] : " Drew Adams
2021-04-07 19:24                 ` Jean Louis
2021-04-07 18:19               ` [External] : " Drew Adams
2021-04-07 18:13             ` Drew Adams
2021-04-07 15:24           ` Gregory Heytings
2021-04-07 16:10             ` Philip Kaludercic
2021-04-07 16:49               ` Gregory Heytings
2021-04-07 17:40                 ` Philip Kaludercic
2021-04-07 17:48                   ` Gregory Heytings
2021-04-07 19:22                     ` Philip Kaludercic
2021-04-07 19:03           ` Jean Louis
2021-04-07 14:31         ` T.V Raman
2021-04-07 16:02         ` Eric Abrahamsen
2021-04-07 18:18           ` [External] : " Drew Adams
2021-04-09  6:40           ` Thierry Volpiatto
2021-04-10  4:20             ` Eric Abrahamsen
2021-04-07 18:49         ` Jean Louis
2021-04-07 20:33           ` Juri Linkov
2021-04-09 11:12             ` Jean Louis
2021-04-07 13:01       ` Dmitry Gutov
2021-04-07 14:44         ` Stefan Monnier
2021-04-07 14:55           ` Philip Kaludercic
2021-04-07 21:56           ` Dmitry Gutov
2021-04-07 22:59             ` Philip Kaludercic
2021-04-08  0:48               ` Dmitry Gutov
2021-04-08 14:44                 ` Philip Kaludercic
2021-04-08 16:40                   ` T.V Raman
2021-04-08 17:53                     ` Philip Kaludercic
2021-04-08 17:57                       ` T.V Raman
2021-04-08 17:21                   ` [External] : " Drew Adams
2021-04-08 18:03                     ` Philip Kaludercic
2021-04-08 18:59                   ` Dmitry Gutov
2021-04-09  4:21                     ` Eric Abrahamsen
2021-04-09 23:18                       ` Dmitry Gutov
2021-04-10  4:31                         ` Eric Abrahamsen
2021-04-09  5:56                     ` Eli Zaretskii
2021-04-09 23:12                       ` Dmitry Gutov
2021-04-09 23:48                         ` Stefan Monnier
2021-04-10  1:56                           ` Dmitry Gutov
2021-04-10  4:04                             ` Stefan Monnier
2021-04-10 13:11                               ` Dmitry Gutov
2021-04-11 21:48                                 ` Stefan Monnier
2021-04-11 22:07                                   ` [External] : " Drew Adams
2021-04-11 22:10                                     ` Drew Adams
2021-04-11 21:52                                 ` Philip Kaludercic
2021-04-11 22:24                                   ` Dmitry Gutov
2021-04-12  1:32                                     ` Stefan Monnier
2021-04-12  4:16                                       ` [External] : " Drew Adams
2021-04-14  0:04                                       ` Dmitry Gutov
2021-04-10  7:27                             ` Eli Zaretskii
2021-04-10 10:53                               ` Dmitry Gutov
2021-04-10 11:09                                 ` Eli Zaretskii
2021-04-10  7:20                           ` Eli Zaretskii
2021-04-10 10:52                             ` Dmitry Gutov
2021-04-10 11:08                               ` Eli Zaretskii
2021-04-10 12:43                                 ` Dmitry Gutov
2021-04-10 13:10                                   ` Eli Zaretskii
2021-04-10 14:26                                     ` Dmitry Gutov
2021-04-10 10:56                             ` Stefan Kangas
2021-04-10 11:11                               ` Eli Zaretskii
2021-04-11 11:37                                 ` Stefan Kangas
2021-04-11 12:24                                   ` Philip Kaludercic
2021-04-11 12:58                                     ` Stefan Kangas
2021-04-11 13:42                                       ` Eli Zaretskii
2021-04-11 13:39                                     ` Eli Zaretskii
2021-04-11 17:16                                       ` Dmitry Gutov
2021-04-11 18:19                                         ` Eli Zaretskii
2021-04-11 18:36                                           ` [External] : " Drew Adams
2021-04-11 21:14                                           ` Dmitry Gutov
2021-04-11 13:37                                   ` Eli Zaretskii
2021-04-11 15:32                                     ` Stefan Kangas
2021-04-11 15:50                                       ` Eli Zaretskii
2021-04-11 15:55                                         ` Lars Ingebrigtsen
2021-04-11 16:49                                           ` Eli Zaretskii
2021-04-10 14:14                               ` [External] : " Drew Adams
2021-04-10 13:13                             ` Stefan Monnier
2021-04-10 14:00                               ` Eli Zaretskii
2021-04-10 11:11                           ` Gregory Heytings
2021-04-10 13:15                             ` Stefan Monnier
2021-04-10 13:40                               ` Gregory Heytings
2021-04-11 21:52                                 ` Stefan Monnier
2021-04-10  7:09                         ` Eli Zaretskii [this message]
2021-04-10 14:40                           ` Dmitry Gutov
2021-04-10 15:02                             ` Eli Zaretskii
2021-04-11  0:04                               ` Dmitry Gutov
2021-04-11  7:20                                 ` Eli Zaretskii
2021-04-10 14:40       ` Philip Kaludercic
2021-04-11  0:18         ` Dmitry Gutov
2021-04-11 11:18           ` Philip Kaludercic
2021-04-11 13:31             ` Jean Louis
2021-04-11 15:53               ` Philip Kaludercic
2021-04-12  9:24                 ` Jean Louis
2021-04-12 10:14                   ` Philip Kaludercic
2021-04-12 10:56                     ` Jean Louis
2021-04-12 11:30                       ` Philip Kaludercic
2021-04-12 16:28                     ` Eric Abrahamsen
2021-04-12 18:36                       ` [External] : " Drew Adams
2021-04-12 19:01                         ` Eric Abrahamsen
2021-04-12 19:21                           ` Drew Adams
2021-04-12 23:39                             ` Eric Abrahamsen
2021-04-13  2:06                               ` Drew Adams
2021-04-11 13:34             ` Eli Zaretskii
2021-04-11 16:14               ` Philip Kaludercic
2021-04-11 16:53                 ` Eli Zaretskii
2021-04-11 17:39                   ` Philip Kaludercic
2021-04-11 18:23                     ` Eli Zaretskii
2021-04-12 13:59         ` Stefan Monnier
2021-04-13 23:57           ` Dmitry Gutov
2021-04-21  9:20         ` Philip Kaludercic
2021-04-21  9:29           ` Eli Zaretskii
2021-04-21 10:27             ` Philip Kaludercic
2021-04-21 12:00               ` Eli Zaretskii
2021-04-21 12:50                 ` Philip Kaludercic
2021-04-21 13:02                   ` Eli Zaretskii
2021-04-21 14:25                     ` Jean Louis
2021-04-21 15:43                     ` Yuri Khan
2021-04-21 17:29                       ` Eli Zaretskii
2021-04-21 19:22                         ` Stefan Monnier
2021-04-21 19:25                           ` Eli Zaretskii
2021-04-21 19:35                             ` Stefan Monnier
2021-04-21 14:13                   ` Jean Louis
2021-04-21 14:35                   ` Stefan Monnier
2021-04-21 20:31                     ` [External] : " Drew Adams
2021-04-21 13:14           ` Daniel Mendler
2021-04-21 14:21             ` Philip Kaludercic
2021-04-05 14:59 ` Stefan Monnier
2021-04-05 15:32 ` Stefan Kangas
2021-04-05 17:55   ` Daniel Mendler
2021-04-05 18:10     ` Stefan Kangas
2021-04-09 21:37 ` Tassilo Horn
2021-04-09 23:23   ` Daniel Mendler
2021-04-10  7:17     ` Tassilo Horn
2021-04-10  9:33       ` Daniel Mendler
2021-04-10  9:44         ` Tassilo Horn
2021-04-10 10:07           ` Daniel Mendler
2021-04-10 13:34         ` Stefan Monnier
2021-04-10 14:07           ` Daniel Mendler
2021-04-10 15:19             ` Stefan Monnier
2021-04-10 17:27               ` Tassilo Horn
2021-04-10 20:58             ` Juri Linkov
2021-04-10  7:18     ` Eli Zaretskii
2021-04-10  9:21       ` Daniel Mendler
2021-04-10  9:30         ` Eli Zaretskii
2021-04-10  9:38           ` Daniel Mendler
2021-04-10 10:00             ` Eli Zaretskii
2021-04-10 10:14               ` Daniel Mendler
2021-04-10  9:38           ` Tassilo Horn
2021-04-10 10:02             ` Eli Zaretskii

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=83blam7gzh.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=philipk@posteo.net \
    /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).