unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: jonas@bernoul.li, emacs-devel@gnu.org, monnier@iro.umontreal.ca,
	adam@alphapapa.net, kyle@kyleam.com, drew.adams@oracle.com
Subject: Re: handling many matches
Date: Sat, 2 May 2020 19:13:18 +0300	[thread overview]
Message-ID: <14f6ff0f-afcc-5cc2-b8ce-491209c1e739@yandex.ru> (raw)
In-Reply-To: <83wo5usaui.fsf@gnu.org>

On 02.05.2020 16:52, Eli Zaretskii wrote:

> If by "look" you mean to the user, then I envision a list of
> completion candidates that somehow "knows" what I'm after, and places
> those likely guesses near the beginning of the list.

All fuzzy completion systems do that. Generally by scoring how well each 
string resembles the input string. Whether there are gaps between the 
matched characters, and so on. Our 'flex' completion style has this 
feature as well.

>>> and only after that consider changes, like the
>>> proposed "namespacing" of APIs, that will allow users to use
>>> completion as a substitute for Help commands.
>>
>> Namespacing of APIs is a step that should help the users with the
>> current default completion strategy.
> 
> Like I said, I think the hopes it will deliver a significant enough
> improvement are overrated.  It will certainly bloat the lists of
> candidates by factors, which is why I think it isn't a very good idea
> as long as we don't have some smart scoring of candidates.

The amount of "bloat" will be strictly limited by the number of aliases 
we add. I think there's a general agreement that we shouldn't go overboard.

>>> It is IMO a bad idea to
>>> flood the completion lists with many dozens of candidates and force
>>> users to wade through them.  I certainly wouldn't call that "progress"
>>> for Emacs.
>>
>> Is that what fido-mode does? People seem to like it.
> 
> I don't have a good idea of what fido-mode does, but the rather foggy
> idea I do have says it just applies fuzzy search criteria, attempting
> to find non-literal matches.  If this is so, then I don't think fido
> cuts it.

You can try it. It uses 'flex', and thus it sorts the matches based on 
scores.

> We need scoring that "learns" from what I do/did recently,
> and from my habits.  Otherwise the list of candidates will remain
> hopelessly long, with no promise of having what I'm really looking for
> anywhere near the beginning.

There are systems like that, including in third-party Emacs packages. 
Personally, I'm not fond of the idea (the unpredictability, first of 
all), and I'd rather we polish the current scoring algo first.

But it's good to have it customizable.

> Compare with the Internet search: it almost always brings me hundreds
> of hits, but I normally find what I was after among the first dozen.
> Even more spectacularly, when I type a search phrase into the search
> box, it guesses what my search phrase will be, and the guesses are
> almost always very accurate, so much so that if I don't see a long
> enough list of reasonable candidates, I usually go looking for some
> typo in what I typed (and almost always find it).  Some of the
> candidates are based on my previous search phrases, and the ones I
> typed are always ready to be reused, with a special indication to let
> me know I recently used them.

Right. There's some benefit in that. But also note that Internet 
searches can't really use fuzzy matching, at all. I'd venture to say 
that it will be difficult to combine fuzzy searches and historical 
scoring, too.



  reply	other threads:[~2020-05-02 16:13 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01 17:20 handling many matches [was: [ELPA] New package: transient] Drew Adams
2020-05-01 22:16 ` Dmitry Gutov
2020-05-01 22:47   ` Drew Adams
2020-05-02  6:29   ` handling many matches Eli Zaretskii
2020-05-02 13:26     ` Dmitry Gutov
2020-05-02 13:52       ` Eli Zaretskii
2020-05-02 16:13         ` Dmitry Gutov [this message]
2020-05-02 16:31           ` Eli Zaretskii
2020-05-02 16:58             ` Dmitry Gutov
2020-05-02 17:25               ` Eli Zaretskii
2020-05-02 18:17                 ` Dmitry Gutov
2020-05-02 18:31                   ` Eli Zaretskii
2020-05-02 18:39                     ` Dmitry Gutov
2020-05-02 18:46                       ` Eli Zaretskii
2020-05-02 21:11                         ` Dmitry Gutov
     [not found] <<119c0543-387d-4fad-b7fe-b4e07a7be4f8@default>
     [not found] ` <<d9f15b2a-d8b3-0c84-b7da-65aa30082e57@yandex.ru>
     [not found]   ` <<837dxuvohj.fsf@gnu.org>
     [not found]     ` <<f56f84c9-80ac-18f0-35fb-49034122853e@yandex.ru>
     [not found]       ` <<83wo5usaui.fsf@gnu.org>
2020-05-02 18:21         ` Drew Adams
2020-05-02 18:34           ` Eli Zaretskii
     [not found]         ` <<14f6ff0f-afcc-5cc2-b8ce-491209c1e739@yandex.ru>
     [not found]           ` <<83y2qaqoxi.fsf@gnu.org>
     [not found]             ` <<5f531674-88b2-55fd-a677-7cbd57a62b91@yandex.ru>
     [not found]               ` <<83tv0yqmeq.fsf@gnu.org>
     [not found]                 ` <<e8e5136a-129b-0588-1e2d-74a9950899be@yandex.ru>
     [not found]                   ` <<83pnbmqjcz.fsf@gnu.org>
     [not found]                     ` <<beb7562b-f05c-0f8c-64ca-f6ce78f4d779@yandex.ru>
     [not found]                       ` <<83imheqin8.fsf@gnu.org>
2020-05-02 19:51                         ` Drew Adams
     [not found] <<<119c0543-387d-4fad-b7fe-b4e07a7be4f8@default>
     [not found] ` <<<d9f15b2a-d8b3-0c84-b7da-65aa30082e57@yandex.ru>
     [not found]   ` <<<837dxuvohj.fsf@gnu.org>
     [not found]     ` <<<f56f84c9-80ac-18f0-35fb-49034122853e@yandex.ru>
     [not found]       ` <<<83wo5usaui.fsf@gnu.org>
     [not found]         ` <<db6f7655-0562-4eb1-a8a2-52f194f44471@default>
     [not found]           ` <<83o8r6qj8a.fsf@gnu.org>
2020-05-02 19:18             ` 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=14f6ff0f-afcc-5cc2-b8ce-491209c1e739@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=adam@alphapapa.net \
    --cc=drew.adams@oracle.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=jonas@bernoul.li \
    --cc=kyle@kyleam.com \
    --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).