all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Óscar Fuentes" <ofv@wanadoo.es>
To: emacs-devel@gnu.org
Subject: Re: Why fido, icycles, ido, icomplete
Date: Thu, 07 Nov 2019 19:50:34 +0100	[thread overview]
Message-ID: <87sgmzcyh1.fsf@telefonica.net> (raw)
In-Reply-To: 874kzg3sms.fsf@gmail.com

João Távora <joaotavora@gmail.com> 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.




  reply	other threads:[~2019-11-07 18:50 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20191106212018.cnddqzlo5rpdhi6s.ref@Ergus>
2019-11-06 21:20 ` Why fido, icycles, ido, icomplete Ergus
2019-11-06 21:30   ` Daniele Nicolodi
2019-11-06 22:27     ` Ergus
2019-11-06 22:03   ` João Távora
2019-11-06 22:39     ` Óscar Fuentes
2019-11-06 22:57       ` João Távora
2019-11-06 23:07         ` Óscar Fuentes
2019-11-07  0:36           ` João Távora
2019-11-07  1:07             ` Óscar Fuentes
2019-11-07  1:21               ` Ergus
2019-11-07  1:51                 ` Óscar Fuentes
2019-11-07 10:09               ` João Távora
2019-11-07 18:50                 ` Óscar Fuentes [this message]
2019-11-06 23:21     ` Ergus
2019-11-06 23:59       ` Óscar Fuentes
2019-11-07  0:47         ` Ergus
2019-11-07  2:20           ` Óscar Fuentes
2019-11-07  4:59             ` Ergus
2019-11-07 18:26               ` Óscar Fuentes
2019-11-07 14:09             ` Stefan Monnier
2019-11-07 20:35               ` Óscar Fuentes
2019-11-07 21:11                 ` Stefan Monnier
2019-11-07 22:18                   ` Óscar Fuentes
2019-11-07 22:30                     ` Stefan Monnier
2019-11-07 22:34                     ` João Távora
2019-11-07  0:27       ` João Távora
2019-11-07  1:09         ` Ergus
2019-11-07 10:39           ` João Távora
2019-11-07 15:00             ` Ergus
2019-11-08 17:54     ` Filipp Gunbin
2019-11-08 18:10       ` Óscar Fuentes
2019-11-08 18:45       ` Nicolas Semrau
2019-11-08 19:12       ` Eli Zaretskii
2019-11-08 21:31         ` Juanma Barranquero
2019-11-08 22:54           ` João Távora
2019-11-08 23:11             ` Ergus

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=87sgmzcyh1.fsf@telefonica.net \
    --to=ofv@wanadoo.es \
    --cc=emacs-devel@gnu.org \
    /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.