[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why fido, icycles, ido, icomplete
From: |
Óscar Fuentes |
Subject: |
Re: Why fido, icycles, ido, icomplete |
Date: |
Thu, 07 Nov 2019 19:50:34 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
João Távora <address@hidden> writes:
>> Where can I learn about that completion-styles API?
>
> In the emacs manual, but a lot in lisp/minibuffer.el. Look at how the
> other styles are implemented. Also ask Stefan on this list.
Thanks.
>>> You can also try 'flex' and tell me what you think you are missing from
>>> flx. I don't find flex "unbearably dumb" :-)
>>
>> I have experience with ido's flex and can't compare.
>
> I wasn't talking about ído's flex, which is named
> 'ido-enable-flex-matching'. So we don't lose ourselves, when I say
> 'flex' I am talking about:
>
> (setq completion-styles '(flex))
> (setq completion-category-defaults nil )
I'll try to experiment with emacs -Q and those settings as time permits.
>> flx requires some
>> training but then it is extremely effective. I no longer bother to
>> memorize most keyboard shorcuts, because by just remembering *some* part
>> of the command's name it can be easily invoked through M-x, often with
>> less keypresses (and with much less chording). It is quite effective at
>> discovering new commands, once you have an idea of the naming convention
>> that a package uses. Last, but not least, it is the matching system used
>> by some of the "cool kids" that competes with Emacs (Sublime Text, to
>> name one).
>
> I don't use the "cool kids" stuff, but I do use some completion boxes in
> some other applications with flex matching. I don't see any big
> difference between 'flex' and those.
The likely reason is that those other applications use flex matching or
something that approximates it. On non-technical applications flx can be
problematic because using it without some knowledge about how it works
can bring puzzling results.
>> If you need autocorrection with flx, you are using it wrong.
>
> I don't use flx. I gather it doesn't support autocorrection and neither
> does 'flex'. Great. Or not. Autocorrection is an advanced feature in
> many systems, most prominently Google's. The point there, I think, is
> precisely that you CAN use it wrong, as humans frequently do.
Autocorrection makes little sense when 1) your typical input is tiny
(less that 6 characters) and 2) effective use of the completion style
depends on *not* using words.
[snip]
> I'm looking for your feedback in term of these kinds of statements
>
> "When I use 'flx' on the set X it gives me Y but 'flex' on the same
> set gives me Z"
>
> If we find 'flx's result is more compelling, we can take steps to
> approximate 'flex' to it.
I don't think that's a good idea. Many users are utterly confused by flx
but are quite happy with flex. I'm more interested on adding flx as a
completion style (hence my previous question about the completion-styles
API).
>> instance, with M-x and 20000+ candidates, four letters are almost always
>> enough to put the target on the first 10 candidates. Said that, flx is
>> somewhat forgiving about typos
>
> Yes, but what kind of typos? If I type "complwt", will it ever bring
> "completion" as a match? 'flex' won't.
Neither flx, because "completion" has no `w'. I already mentiond why flx
users do not care much about autocorrection. Now I'll add that flx is
not particularly good (read: superior to other methods) at completing
single words. It shines at completing strings made of multiple words,
tough, as your typical Elisp function/variable name, C++/Java qualified
method, pathname, etc.
- Re: Why fido, icycles, ido, icomplete, (continued)
- Re: Why fido, icycles, ido, icomplete, João Távora, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, João Távora, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, João Távora, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Ergus, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, João Távora, 2019/11/07
- Re: Why fido, icycles, ido, icomplete,
Óscar Fuentes <=
Re: Why fido, icycles, ido, icomplete, Ergus, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Ergus, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/06
- Re: Why fido, icycles, ido, icomplete, Ergus, 2019/11/07
- Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/07
Re: Why fido, icycles, ido, icomplete, Stefan Monnier, 2019/11/07
Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/07
Re: Why fido, icycles, ido, icomplete, Stefan Monnier, 2019/11/07
Re: Why fido, icycles, ido, icomplete, Óscar Fuentes, 2019/11/07