From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: Feedback on fido-mode Date: Mon, 9 Mar 2020 14:42:40 +0000 Message-ID: References: <87o8t8fb5w.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000009b93a105a06d04d7" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="103002"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel To: Adam Porter Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Mar 09 15:43:38 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 1jBJd3-000QeG-JW for ged-emacs-devel@m.gmane-mx.org; Mon, 09 Mar 2020 15:43:37 +0100 Original-Received: from localhost ([::1]:44006 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBJd2-0004uO-Kl for ged-emacs-devel@m.gmane-mx.org; Mon, 09 Mar 2020 10:43:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55549) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBJcN-0003yv-Tx for emacs-devel@gnu.org; Mon, 09 Mar 2020 10:42:57 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBJcL-0004dZ-Qn for emacs-devel@gnu.org; Mon, 09 Mar 2020 10:42:55 -0400 Original-Received: from mail-il1-x12d.google.com ([2607:f8b0:4864:20::12d]:35129) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jBJcL-0004d6-KM for emacs-devel@gnu.org; Mon, 09 Mar 2020 10:42:53 -0400 Original-Received: by mail-il1-x12d.google.com with SMTP id g126so8880582ilh.2 for ; Mon, 09 Mar 2020 07:42:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=L1iUn6GallnRzt/LuWvr50u9Kb0rEm2QfTz5OHHnGVQ=; b=QwNgJf6AGoydRl/ZEmnewnqCg5+SKgJcMZIhXjDq7SigEO5jMS8V4cs6p/Nbz01cNh ME/lFwza2Qa0Iab/qT9MAtFjmrdQ0yLkJRFNQsxyYY7ArgjMZ+rRFuy3qZ0uNOlbOlOc Scue7nmjYqYYs0pp2Z5okj0Gu4oblCj2mDtPA628HyQvW8xocVC1FxI3hTTasWqH7liZ Hc4+ZuPU8oy/6nduX0f1OYGaYg3ku4OP46mjuVTztF9zWQPfeefSzMaFlYOv8kvXiKUg cyZTT/2w/op7fSh6D7J/BMM8U4DIIdJuUeSkbQ/AkoE2e4CJNPPIbWfBa9FuyixccjUU mhGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=L1iUn6GallnRzt/LuWvr50u9Kb0rEm2QfTz5OHHnGVQ=; b=OglYBA0vLYQO+rtaSBbOk0VGRn3XnmeaJUlb7xbuY/XhyAJgYJQlNMpTbfRq42cxoN reSCHcvUVL60pITMkUaZ0FSlJVff6RjnUNTalrH/Li2JTZZN44E8OvBnEWzgimijz9L0 88KgGAeng408sVMQ6l4a336H2quvY9bh1Kk7Eiw7hDWrh3A1LtQQovhEiGn3JqjY3kqY qC+fUtk4S1M59E1RcyEhz+o0JMJlsZ2U7FlR4nFqEI7jimqq5wa60cywWxMyd2QB4Udt G5KCSnbdTvCd8N4MA0qXuCvnJrbe2Wr6YVu8hU1eZUYtq0DD7l8aLs15PxQE68I1G/WO /xLg== X-Gm-Message-State: ANhLgQ37+s6D/eKHRIlEKalV2vZ+1xvuaK3+t3wELF/iC+PxRGLPYZpY 8ZY79SxvsuuPzf5tjLGgONJNjR5htvw0fKshqLcEO6VX X-Google-Smtp-Source: ADFU+vt3dfcxUCVZiiGxVcCxTnE/jLoq1kYd/b19FbMunGbhABG3/ZnNVnA/+eDVjM+bCLjnUYrMWLU/Y2UYs+DpZkY= X-Received: by 2002:a05:6e02:10c6:: with SMTP id s6mr9856710ilj.9.1583764972735; Mon, 09 Mar 2020 07:42:52 -0700 (PDT) In-Reply-To: <87o8t8fb5w.fsf@alphapapa.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::12d 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:245382 Archived-At: --0000000000009b93a105a06d04d7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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=C3=A3o On Sat, Mar 7, 2020 at 3:17 PM Adam Porter wrote: > Hi, > > Seeing Jo=C3=A3o'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* =C2=BB *Help* > *Special* =C2=BB **Special** =C2=BB *Warnings* > *Special* =C2=BB **Special** =C2=BB *scratch* > *Special* =C2=BB **Special** =C2=BB *Messages* > *Special* =C2=BB completion-list-mode =C2=BB *Completions* > *Special* =C2=BB Custom-mode =C2=BB *Customize Group: Icomplete* > *Special* =C2=BB Custom-mode =C2=BB *Customize Apropos* > *Special* =C2=BB apropos-mode =C2=BB *Apropos* > *Special* =C2=BB bufler-list-mode =C2=BB *Bufler* > Dir: ~/.emacs.d/ =C2=BB Dir: /home/test/.emacs.d/ =C2=BB emacs-lisp-mod= e =C2=BB 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* =C2=BB completion-list-mode =C2=BB *Completions* > Dir: ~/.emacs.d/ =C2=BB Dir: /home/test/.emacs.d/ =C2=BB emacs-lisp-mod= e =C2=BB 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* =C2=BB *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* =C2= =BB > completion-list-mode =C2=BB *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=C3=A3o and others for your > work on Emacs and Fido. > > 0: https://github.com/alphapapa/bufler.el > > > --=20 Jo=C3=A3o T=C3=A1vora --0000000000009b93a105a06d04d7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Many thanks for the feedback, I will read it carefull= y as soon as possible.=C2=A0=C2=A0

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 bette= r 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, assu= ming some of these complaints are easy to fix and can
be fix= ed exclusively in fido-mode's code, what are your thoughts patching
it up in emacs-27?=C2=A0 Or is it too late for that? I'd sa= y "it's too late" myself,
but I'd like to hear = your opinion.

Thanks,
Jo=C3=A3o
<= /div>

On Sat, Mar 7, 2020 at 3:17 PM Adam Porter <adam@alphapapa.net> wrote:
Hi,

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

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

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

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

2.=C2=A0 I want to switch to the init.el buffer (the last candidate), so I<= br> type "init", expecting it to become the selected (i.e. first) can= didate.
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<= br> the input as a substring:

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

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

3.=C2=A0 I want to select the last completion candidate, so I try the
following:

=C2=A0 - "C-n".=C2=A0 Minibuffer shows: "[End of buffer]&quo= t;
=C2=A0 - "M-n".=C2=A0 Minibuffer shows: "*Help/Info* =C2=BB = *Help* (No matches)"
=C2=A0 - "TAB".=C2=A0 Result: expanded completion list, selected = candidate
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uncha= nged.
=C2=A0 - "C-h m", hoping to find out what the Fido keybindings ar= e so I can
=C2=A0 =C2=A0 select the candidate.=C2=A0 Result: A *Help* buffer showing m= inor-mode
=C2=A0 =C2=A0 information, but nothing about Fido or any keybindings in the=
=C2=A0 =C2=A0 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).=C2=A0 I'm sure it does something useful, o= f
course, but from the perspective of a user new to it, I don't understan= d
it yet.

4.=C2=A0 I happen to notice that if I type a ".", that causes the= init.el
candidate to become the sole candidate.=C2=A0 Deleting the "." re= turns the
"*Completions*" candidate and causes it to be the selected one ag= ain.

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

6.=C2=A0 I see there's a new "flex" completion style, so I tr= y that at the
front of completion-styles.=C2=A0 Again, it makes no difference: with input=
"init", the init.el candidate is not selected, while the "*S= pecial* =C2=BB
completion-list-mode =C2=BB *Completions*" candidate is.

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

7.=C2=A0 I disable fido-mode and enable ivy-mode.=C2=A0 I run "M-x
bufler-switch-buffer" again and type "init".=C2=A0 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.=C2=A0 Maybe a little of both.=C2= =A0 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, bu= t
that's beside the point).

I hope this feedback is helpful.=C2=A0 Thanks to Jo=C3=A3o and others for y= our
work on Emacs and Fido.

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




--
Jo=C3=A3o T=C3=A1vora
--0000000000009b93a105a06d04d7--