[Top][All Lists]

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

Re: Feedback on fido-mode

From: João Távora
Subject: Re: Feedback on fido-mode
Date: Mon, 9 Mar 2020 14:42:40 +0000

Many thanks for the feedback, I will read it carefully as soon as possible.  

Please be aware that fido-mode is really Icomplete-mode emulating _some_
of ido-mode's features. It's likely that the emulation will get better in the future
or even surpass ido-mode in features. But in any case, it's _not_ an emulation
of Ivy-mode (if that's what you are after in some way).

Anyway, Eli, assuming some of these complaints are easy to fix and can
be fixed exclusively in fido-mode's code, what are your thoughts patching
it up in emacs-27?  Or is it too late for that? I'd say "it's too late" myself,
but I'd like to hear your opinion.


On Sat, Mar 7, 2020 at 3:17 PM Adam Porter <address@hidden> wrote:

Seeing João's recent message about Fido reminded me of it, and since I'm
testing Emacs 27+ for the first time lately, I gave it a try.  It was
not quite as useful or easy-to-use as I expected, so I thought maybe I
should send some feedback.  Of course, I'm not much of an ido nor
icomplete user, so maybe I'm missing something basic.

I've been testing Bufler [0] with Andrea's native-comp branch.  With
bufler-mode enabled, I enabled fido-mode, and here's how it went:

1.  M-x bufler-switch-buffers.  This presents the following completions
list, as expected (I hope these lines don't wrap):

  Possible completions are:
  *Help/Info* » *Help* 
  *Special* » **Special** » *Warnings* 
  *Special* » **Special** » *scratch*   
  *Special* » **Special** » *Messages* 
  *Special* » completion-list-mode » *Completions*
  *Special* » Custom-mode » *Customize Group: Icomplete*
  *Special* » Custom-mode » *Customize Apropos*                           
  *Special* » apropos-mode » *Apropos*                                   
  *Special* » bufler-list-mode » *Bufler*                                 
  Dir: ~/.emacs.d/ » Dir: /home/test/.emacs.d/ » emacs-lisp-mode » init.el

2.  I want to switch to the init.el buffer (the last candidate), so I
type "init", expecting it to become the selected (i.e. first) candidate.
Instead, the completions list shows the following choices, and init.el
is not the first one, even though it's the only candidate that matches
the input as a substring:

  Possible completions are:
  *Special* » completion-list-mode » *Completions*
  Dir: ~/.emacs.d/ » Dir: /home/test/.emacs.d/ » emacs-lisp-mode » init.el

I see the letters that spell "init" highlighted in the first candidate,
even though none of them are sequential in it.

3.  I want to select the last completion candidate, so I try the

  - "C-n".  Minibuffer shows: "[End of buffer]"
  - "M-n".  Minibuffer shows: "*Help/Info* » *Help* (No matches)"
  - "TAB".  Result: expanded completion list, selected candidate
  - "C-h m", hoping to find out what the Fido keybindings are so I can
    select the candidate.  Result: A *Help* buffer showing minor-mode
    information, but nothing about Fido or any keybindings in the

At this point I'm not sure what Fido provides over Ido or Icomplete
(though, again, I am not an expert on either of those, since I mostly
use Helm and sometimes Ivy).  I'm sure it does something useful, of
course, but from the perspective of a user new to it, I don't understand
it yet.

4.  I happen to notice that if I type a ".", that causes the init.el
candidate to become the sole candidate.  Deleting the "." returns the
"*Completions*" candidate and causes it to be the selected one again.

5.  Having recently rediscovered the completion-styles option (remember,
I mostly use Helm ;), I wonder if adding the "substring" style will
help.  So I add it to the end of the completion-styles list and try
again.  It makes no difference: with input "init", the init.el candidate
is still at the end of the list and not selected.  I try putting
"substring" at the front of completion-styles, but that also changes

6.  I see there's a new "flex" completion style, so I try that at the
front of completion-styles.  Again, it makes no difference: with input
"init", the init.el candidate is not selected, while the "*Special* »
completion-list-mode » *Completions*" candidate is.

At this point, I feel like I must be missing something or doing
something wrong.  When I type "init", and only one of the candidates
matches that substring, it seems like that should be the selected
candidate.  And it seems like it should be easier to discover the
keybinding to choose the next candidate.

7.  I disable fido-mode and enable ivy-mode.  I run "M-x
bufler-switch-buffer" again and type "init".  The init.el candidate is
the only candidate presented for that input, so I can hit RET to select

So, whether all this indicates a PEBKAC, or a suboptimal default
completion experience, I'm not sure.  Maybe a little of both.  I think
that, generally, it would be helpful if Emacs's default completion
experience were closer to what Ivy provides (though not exactly with
Ivy's default settings, as I find its TAB binding a bit confounding, but
that's beside the point).

I hope this feedback is helpful.  Thanks to João and others for your
work on Emacs and Fido.

0: https://github.com/alphapapa/bufler.el

João Távora

reply via email to

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