all messages for Emacs-related lists mirrored at yhetil.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:58:08 +0300	[thread overview]
Message-ID: <5f531674-88b2-55fd-a677-7cbd57a62b91@yandex.ru> (raw)
In-Reply-To: <83y2qaqoxi.fsf@gnu.org>

On 02.05.2020 19:31, Eli Zaretskii wrote:

>> All fuzzy completion systems do that. Generally by scoring how well each
>> string resembles the input string.
> 
> That criterion alone is not enough, IME.  It is also important
> (sometimes much more important) what I'm doing, in what major mode,
> my previous completion attempts, etc.

Your argument here has merit. The difficulty is in writing an 
appropriate scoring algorithm.

The "what I'm doing" and "what major mode" conditions could be solved by 
pre-filtering in a lot of cases, though.

>>> 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.
> 
> Yes, and I tend to think we will add a lot.

That's a self-defeating argument.

By the amount of resistance from your side, my impression so far is that 
we'll end up adding none (again).

>>> 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.
> 
> When the first few candidates are what I want, predictability goes out
> the window.  I'm a happy user when I find what I'm looking for fast.

That rules out the "browsing an API" use case, when we need the "first 
20" or "first 40" candidates to be good.

IOW, the algorithms should be everything to everyone. Which is 
difficult, but we should try to approach it.



  reply	other threads:[~2020-05-02 16:58 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
2020-05-02 16:31           ` Eli Zaretskii
2020-05-02 16:58             ` Dmitry Gutov [this message]
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

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

  git send-email \
    --in-reply-to=5f531674-88b2-55fd-a677-7cbd57a62b91@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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.