From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Adam Porter Newsgroups: gmane.emacs.devel Subject: Feedback on fido-mode Date: Sat, 07 Mar 2020 09:16:11 -0600 Message-ID: <87o8t8fb5w.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="11711"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 07 16:18:03 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jAbDH-0002xE-75 for ged-emacs-devel@m.gmane-mx.org; Sat, 07 Mar 2020 16:18:03 +0100 Original-Received: from localhost ([::1]:49748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAbDG-0005Z3-0e for ged-emacs-devel@m.gmane-mx.org; Sat, 07 Mar 2020 10:18:02 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59871) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAbBe-0002ww-2y for emacs-devel@gnu.org; Sat, 07 Mar 2020 10:16:23 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAbBc-0003ap-JN for emacs-devel@gnu.org; Sat, 07 Mar 2020 10:16:22 -0500 Original-Received: from ciao.gmane.io ([159.69.161.202]:48498) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jAbBc-0003ZH-DA for emacs-devel@gnu.org; Sat, 07 Mar 2020 10:16:20 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1jAbBa-00010m-Qv for emacs-devel@gnu.org; Sat, 07 Mar 2020 16:16:18 +0100 X-Injected-Via-Gmane: http://gmane.org/ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 159.69.161.202 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:245314 Archived-At: 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