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 23:18:39 +0100	[thread overview]
Message-ID: <87bltncou8.fsf@telefonica.net> (raw)
In-Reply-To: jwv8sorcsb0.fsf-monnier+emacs@gnu.org

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> On my Ido config, there is visual feedback about the parts of the candidate
>> strings that matches the query and they are shown on a multi-column
>> format that is dense and readable at the same time, IMO.
>
> Great, I wasn't aware that it had been implemented for IDO.

As an extension, yes.

Below is my Ido-related config. It extends Ido completion to almost all
Emacs, activates flx and changes the way candidates are displayed.

Those customizations replace Ido's candidate-handling algorithm and
dramatically alters its UI. So much for an unintelligible package :-)

(setq ido-save-directory-list-file nil)
(put 'tmm-menubar 'ido 'ignore)
(require 'ido-hacks)
(ido-hacks-mode)
(ido-mode 1)
(ido-everywhere)
(setq ido-enable-tramp-completion nil)
(setq ido-auto-merge-work-directories-length -1)
(setq ido-enable-flex-matching t)
(require 'flx-ido)
(flx-ido-mode 1)
;; disable ido faces to see flx highlights.
(setq ido-use-faces nil)
(setq flx-ido-threshold 20000)
(require 'ido-grid-mode)
(ido-grid-mode 1)
(setq ido-grid-mode-prefix-scrolls t)


>> As I mentioned on a previous message, there is more than one way to skin
>> a cat. Having a powerful and flexible (*) default completion method is
>> great, but other approaches perhaps require things that does not fit
>> with whatever framework you can provide.
>
> Definitely.  Emacs makes it particularly easy to experiment this way and
> develop solutions tuned for very specific situations.  IDO is a great
> such example.  The number of "completion frameworks" out there for Emacs
> is another example.
>
> I see the task of Emacs maintainers as trying to consolidate those
> "branches" of functionality so that their features can be used in
> more circumstances.  Usually that only applies to some parts of the
> functionality they offer, and very often it requires a complete rewrite
> of those features.
>
> The hardest part is often how to retrofit the "generic implementation"
> of a feature into the package which originally first provided this
> feature in an "ad-hoc" way, since as a general rule the generic
> implementation isn't a perfect match.

What you say is very reasonable but sometimes this task is not worth the
trouble (I'm not claiming that it's the case for fido-mode).

There is always a tension among specifics and generalities. Sometimes it
is irreconcilable. I don't see VC ever providing a better Magit than
Magit itself and Magit would never come to existence if Marius insisted
on implemeting it inside VC, simply because Magit has the goal of being
the best UI for git and VC has the goal of being the best generic VCS
UI. Does it make sense to expand Emacs' functions towards unifying those
packages? Not at all, because they are only related on a superficial
way.





  reply	other threads:[~2019-11-07 22:18 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
2019-11-07 20:35               ` Óscar Fuentes
2019-11-07 21:11                 ` Stefan Monnier
2019-11-07 22:18                   ` Óscar Fuentes [this message]
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=87bltncou8.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.