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. Thanks, João On Sat, Mar 7, 2020 at 3:17 PM Adam Porter wrote: > Hi, > > 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 > following: > > - "C-n". Minibuffer shows: "[End of buffer]" > - "M-n". Minibuffer shows: "*Help/Info* » *Help* (No matches)" > - "TAB". Result: expanded completion list, selected candidate > unchanged. > - "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 > minibuffer. > > 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 > nothing. > > 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 > it. > > 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