emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why fido, icycles, ido, icomplete


From: Stefan Monnier
Subject: Re: Why fido, icycles, ido, icomplete
Date: Thu, 07 Nov 2019 09:09:23 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]