unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: "Óscar Fuentes" <ofv@wanadoo.es>
Cc: emacs-devel@gnu.org
Subject: Re: Why fido, icycles, ido, icomplete
Date: Thu, 07 Nov 2019 09:09:23 -0500	[thread overview]
Message-ID: <jwvimnv7r8n.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <8736f0e8an.fsf@telefonica.net> ("Óscar Fuentes"'s message of "Thu, 07 Nov 2019 03:20:48 +0100")

Hola Óscar,

> Which new features? Which issues? Did you notice the part were I
> mentioned that I tried Ivy and it was inferior to my Ido setup?

IDO is a great package which lots of users like, so much so that we have
several extra packages trying to use it in more circumstances than just
selecting buffers and files.

It still works as well as ever, AFAIK.
But like all packages, there's pressure to make it work even better.

One of those improvements is to make it work for all completions, as is
done in ido-everywhere and ido-completing-read.  But as it turns out,
the current ido code only works with *most* completion tables, not all.
There aren't terribly many completion tables for which it doesn't work,
but it would be nice to get those few remaining percents working.

There are 2 ways to do that:
1- improve ido.el
2- write a replacement

Both approaches are valid.  Experience shows that approach number 2 has
been more popular.  Personally, I don't use IDO so I'm not particularly
interested in either approach's goal, but I do like some of IDO's
features, so I'm interested in solutions that result in a closer
integration of the "normal" completion code and IDO so I get to use some
the features I like without being forced to buy into the ones I don't.

That's why I wrote the `substring` completion style (which, together
with icomplete-mode (plus a few tweaks) made iswitchb obsolete, but more
importantly, it brought that feature to all users in the default config).

IOW, I don't see fido-mode as "obsoleting ido-mode" but as "adding IDO
features to the standard completion system", IOW spreading IDO's
gospel further.

Here as some examples of the corner cases supported by the standard
completion system and that IDO currently doesn't cover, AFAICT:
- C-x C-f by default can complete env vars, e.g. when you type C-x C-f $HOM TAB
- C-x C-f ${HOM TAB will not only complete the "E" but will also close
  the "}", at least if there's no other env var starting with "HOME".
- IDO doesn't support some completion styles such as `partial-completion`
  E.g. C-x C-f ~/e/s/r-e.c TAB to find the ~/emacs/src/regex-emacs.c file.
- By default IDO only covers minibuffer completion of files and buffers.
  ido-completing-read makes it cover all minibuffer completions, but
  there's still no support for in-buffer completion.
- the *Completions* buffer (and icomplete-mode's in-buffer list of
  completions [tho I now notice that some of the highlighting is lost in
  some cases, looks like a bug]) highlights the parts of the candidates
  that matched the pattern, as well as the place that correspond to where
  "point" is.


        Stefan






  parent reply	other threads:[~2019-11-07 14:09 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
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 [this message]
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

  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=jwvimnv7r8n.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=ofv@wanadoo.es \
    /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).