GNU bug report logs -
#61943
29.0.60; icomplete--in-region-setup should activate icomplete-fido-mode-map too
Previous Next
To reply to this bug, email your comments to 61943 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
juri <at> linkov.net, joaotavora <at> gmail.com, bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Fri, 03 Mar 2023 18:19:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Sean Whitton <spwhitton <at> spwhitton.name>
:
New bug report received and forwarded. Copy sent to
juri <at> linkov.net, joaotavora <at> gmail.com, bug-gnu-emacs <at> gnu.org
.
(Fri, 03 Mar 2023 18:19:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
X-debbugs-cc: juri <at> linkov.net, joaotavora <at> gmail.com
Many thanks to Juri and Joao for fixing #45763! It's a whole new world!
I am a fido-mode user. I noticed that my custom bindings for the
fido-mode minibuffer don't work for in-buffer completion. I think that
icomplete--in-region-setup should compose in icomplete-fido-mode-map, in
addition to icomplete-minibuffer-map, in the case that fido-mode is on?
--
Sean Whitton
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Fri, 03 Mar 2023 20:27:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 61943 <at> debbugs.gnu.org (full text, mbox):
On Fri, Mar 3, 2023, 18:19 Sean Whitton <spwhitton <at> spwhitton.name> wrote:
>
> X-debbugs-cc: juri <at> linkov.net, joaotavora <at> gmail.com
>
> Many thanks to Juri and Joao for fixing #45763! It's a whole new world!
You're welcome, but I think Juri did most of the work.
I had planned to tackle this some time ago but it got lost in
somewhere in the bucket of TODOs. I haven't given it much
testing, but I'm suprised it works the way it does.
I imagined it would show the typical constantly-adjusting
fido-mode/icomplete list of candidates in the echo area, but it
doesn't, only for in-buffer instead of minibuffer.
Instead, it seems to popup *Completions* as usual.
Am I being dense here? How do you set it up? Is it just
(setq icomplete-in-buffer t) + M-x fido-mode as I did?
And how do you invoke it? Is it C-M-i?
> I am a fido-mode user. I noticed that my custom bindings for the
> fido-mode minibuffer don't work for in-buffer completion. I think that
> icomplete--in-region-setup should compose in icomplete-fido-mode-map, in
> addition to icomplete-minibuffer-map, in the case that fido-mode is on?
This probably makes sense, but please, for my benefit, try to show
a minimal config with just Emacs -Q and your keybindings that
you want to use in both fido modes.
João
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 02:14:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Hello,
On Fri 03 Mar 2023 at 08:26PM GMT, João Távora wrote:
> I imagined it would show the typical constantly-adjusting
> fido-mode/icomplete list of candidates in the echo area, but it
> doesn't, only for in-buffer instead of minibuffer.
> Instead, it seems to popup *Completions* as usual.
>
> Am I being dense here? How do you set it up? Is it just
> (setq icomplete-in-buffer t) + M-x fido-mode as I did?
> And how do you invoke it? Is it C-M-i?
Well, the candidates are meant to appear as an overlay after point, not
in the minibuffer. However, there's something strange going on in that
sometimes you can get the candidates display in-buffer but *also* the
*Completions* buffer popping up.
Sometimes this happens and sometimes it doesn't, I haven't figured out
the pattern yet ...
>> I am a fido-mode user. I noticed that my custom bindings for the
>> fido-mode minibuffer don't work for in-buffer completion. I think that
>> icomplete--in-region-setup should compose in icomplete-fido-mode-map, in
>> addition to icomplete-minibuffer-map, in the case that fido-mode is on?
>
> This probably makes sense, but please, for my benefit, try to show
> a minimal config with just Emacs -Q and your keybindings that
> you want to use in both fido modes.
Sure, e.g. evaluating these forms in emacs -Q:
(setq icomplete-in-buffer t)
(fido-mode 1)
(define-key icomplete-fido-mode-map [?\M-.] #'icomplete-forward-completions)
(define-key icomplete-fido-mode-map [?\M-,] #'icomplete-backward-completions)
.. then do something like typing "icomplete- into *scratch* and then C-M-i.
--
Sean Whitton
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 02:36:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Hello,
On Fri 03 Mar 2023 at 11:18AM -07, Sean Whitton wrote:
> X-debbugs-cc: juri <at> linkov.net, joaotavora <at> gmail.com
>
> Many thanks to Juri and Joao for fixing #45763! It's a whole new world!
>
> I am a fido-mode user. I noticed that my custom bindings for the
> fido-mode minibuffer don't work for in-buffer completion. I think that
> icomplete--in-region-setup should compose in icomplete-fido-mode-map, in
> addition to icomplete-minibuffer-map, in the case that fido-mode is on?
I noticed that icomplete-hide-common-prefix etc. are wrong too.
I think that icomplete--in-region-setup also needs to do something
equivalent to the setq-local in icomplete--fido-mode-setup.
--
Sean Whitton
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 11:30:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 61943 <at> debbugs.gnu.org (full text, mbox):
On Sat, Mar 4, 2023 at 2:35 AM Sean Whitton <spwhitton <at> spwhitton.name> wrote:
>
> Hello,
>
> On Fri 03 Mar 2023 at 11:18AM -07, Sean Whitton wrote:
>
> > X-debbugs-cc: juri <at> linkov.net, joaotavora <at> gmail.com
> >
> > Many thanks to Juri and Joao for fixing #45763! It's a whole new world!
> >
> > I am a fido-mode user. I noticed that my custom bindings for the
> > fido-mode minibuffer don't work for in-buffer completion. I think that
> > icomplete--in-region-setup should compose in icomplete-fido-mode-map, in
> > addition to icomplete-minibuffer-map, in the case that fido-mode is on?
>
> I noticed that icomplete-hide-common-prefix etc. are wrong too.
> I think that icomplete--in-region-setup also needs to do something
> equivalent to the setq-local in icomplete--fido-mode-setup.
Yes, Sean, please report an Emacs -Q recipe for what you are trying
to get working.
I've now found a way to test this, and I was surprised at how easy it
was, but also skeptical. As I remember analyzing it more than a year ago,
and finding this a reasonbaly hard job. Also it seems to be completely
broken for fido-vertical mode and icomplete-vertical-mode, so I think
an approach that takes these cousin modes into consideration.
All in all, I'm not sure we should be shipping this half-baked
enhancement for emacs-29, at least not in this phase. I propose
we revert it in emacs-29.
I propose we revert it from there, keep the changes in master,
and focus on making it more consistent there.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 18:57:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 61943 <at> debbugs.gnu.org (full text, mbox):
> All in all, I'm not sure we should be shipping this half-baked
> enhancement for emacs-29, at least not in this phase. I propose
> we revert it in emacs-29.
>
> I propose we revert it from there, keep the changes in master,
> and focus on making it more consistent there.
The patch that I created fixed a bug where in-buffer completion
erased the whole buffer so it needs to stay in emacs-29.
Also for your convenience I pushed your patch that adds support
for in-buffer completion to fido-mode in the hope that the patch
is already in the finished state. However, if you think that
fido-vertical mode and/or icomplete-vertical-mode needs more work
to support in-buffer completions, please decide whether to revert it
or to write an additional patch for these modes in emacs-29.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 19:04:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 61943 <at> debbugs.gnu.org (full text, mbox):
On Sat, Mar 4, 2023 at 6:56 PM Juri Linkov <juri <at> linkov.net> wrote:
> fido-vertical mode and/or icomplete-vertical-mode needs more work
> to support in-buffer completions, please decide whether to revert it
> or to write an additional patch for these modes in emacs-29.
OK, I'll revert just the fido-mode-specific patch in emacs-29. But are
you sure that icomplete-in-buffer works consistently for icomplete-mode?
If it doesn't it'll need more changes, and -- crucially -- changes that
don't break other icomplete cousins like fido and vertical modes.
If it does work OK, then no problem.
João
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 19:17:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 61943 <at> debbugs.gnu.org (full text, mbox):
>> fido-vertical mode and/or icomplete-vertical-mode needs more work
>> to support in-buffer completions, please decide whether to revert it
>> or to write an additional patch for these modes in emacs-29.
>
> OK, I'll revert just the fido-mode-specific patch in emacs-29. But are
> you sure that icomplete-in-buffer works consistently for icomplete-mode?
> If it doesn't it'll need more changes, and -- crucially -- changes that
> don't break other icomplete cousins like fido and vertical modes.
> If it does work OK, then no problem.
icomplete-in-buffer works consistently in all my tests.
But maybe Sean will show more recipes if there are more problems.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Sat, 04 Mar 2023 20:45:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Hello,
On Sat 04 Mar 2023 at 11:30AM GMT, João Távora wrote:
> On Sat, Mar 4, 2023 at 2:35 AM Sean Whitton <spwhitton <at> spwhitton.name> wrote:
>>
>> Hello,
>>
>> On Fri 03 Mar 2023 at 11:18AM -07, Sean Whitton wrote:
>>
>> > X-debbugs-cc: juri <at> linkov.net, joaotavora <at> gmail.com
>> >
>> > Many thanks to Juri and Joao for fixing #45763! It's a whole new world!
>> >
>> > I am a fido-mode user. I noticed that my custom bindings for the
>> > fido-mode minibuffer don't work for in-buffer completion. I think that
>> > icomplete--in-region-setup should compose in icomplete-fido-mode-map, in
>> > addition to icomplete-minibuffer-map, in the case that fido-mode is on?
>>
>> I noticed that icomplete-hide-common-prefix etc. are wrong too.
>> I think that icomplete--in-region-setup also needs to do something
>> equivalent to the setq-local in icomplete--fido-mode-setup.
>
> Yes, Sean, please report an Emacs -Q recipe for what you are trying
> to get working.
Alright, how about this:
(setq icomplete-in-buffer t)
(fido-mode 1)
M-x eshell
touch foobarbaz
C-x C-f fbb => matches the file
C-g
type "ls fbb"
TAB => No matches
C-g
(setq completion-styles '(flex))
TAB => matches the file & expands
but with fido-mode you shouldn't need to set completion-styles like this.
(In Eshell TAB is completion-at-point and C-M-i is something else.)
--
Sean Whitton
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Tue, 21 Mar 2023 22:07:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Hello João,
On Sat 04 Mar 2023 at 01:44PM -07, Sean Whitton wrote:
> On Sat 04 Mar 2023 at 11:30AM GMT, João Távora wrote:
>
>> Yes, Sean, please report an Emacs -Q recipe for what you are trying
>> to get working.
>
> Alright, how about this:
>
> (setq icomplete-in-buffer t)
> (fido-mode 1)
> M-x eshell
> touch foobarbaz
> C-x C-f fbb => matches the file
> C-g
> type "ls fbb"
>
> TAB => No matches
> C-g
> (setq completion-styles '(flex))
> TAB => matches the file & expands
>
> but with fido-mode you shouldn't need to set completion-styles like this.
>
> (In Eshell TAB is completion-at-point and C-M-i is something else.)
May I ask whether you've had a chance to look into this yet?
--
Sean Whitton
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Tue, 21 Mar 2023 23:42:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 61943 <at> debbugs.gnu.org (full text, mbox):
On Tue, Mar 21, 2023 at 10:06 PM Sean Whitton <spwhitton <at> spwhitton.name> wrote:
>
> Hello João,
>
> On Sat 04 Mar 2023 at 01:44PM -07, Sean Whitton wrote:
>
> > On Sat 04 Mar 2023 at 11:30AM GMT, João Távora wrote:
> >
> >> Yes, Sean, please report an Emacs -Q recipe for what you are trying
> >> to get working.
> >
> > Alright, how about this:
> >
> > (setq icomplete-in-buffer t)
> > (fido-mode 1)
> > M-x eshell
> > touch foobarbaz
> > C-x C-f fbb => matches the file
> > C-g
> > type "ls fbb"
> >
> > TAB => No matches
> > C-g
> > (setq completion-styles '(flex))
> > TAB => matches the file & expands
> >
> > but with fido-mode you shouldn't need to set completion-styles like this.
> >
> > (In Eshell TAB is completion-at-point and C-M-i is something else.)
>
> May I ask whether you've had a chance to look into this yet?
Yes you may, but no, I haven't. Icomplete and Fido and cousins,
it's true. But icomplete-in-buffer wasn't around (at least wasn't
in any way functional) when Fido was born. So I don't have
any plans of integrating this part of icomplete in Fido, because
it's not really how I envision Fido being used for non-minibuffer
completion.
I have other plans for a future fido-in-buffer where
the feedback overlay -- in horizontal or vertical form -- shows
in the echo area instead.
That said, if a simple patch to make icomplete-in-buffer work with
fido-mode can be achieved, I have no problem reviewing it.
As you suggested, it could be as simple as integrating
icomplete--fido-mode-setup into icomplete--in-region-setup.
But that is relatively tricky as whatever variables are set
when entering this mode but be properly reset when leaving it.
Doing this elegantly might not be hard, but it's not trivial
either.
João
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Wed, 22 Mar 2023 17:26:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Hello,
On Tue 21 Mar 2023 at 11:40PM GMT, João Távora wrote:
> Yes you may, but no, I haven't. Icomplete and Fido and cousins,
> it's true. But icomplete-in-buffer wasn't around (at least wasn't
> in any way functional) when Fido was born. So I don't have
> any plans of integrating this part of icomplete in Fido, because
> it's not really how I envision Fido being used for non-minibuffer
> completion.
>
> I have other plans for a future fido-in-buffer where
> the feedback overlay -- in horizontal or vertical form -- shows
> in the echo area instead.
Interesting idea. What do you think the advantages are? It's breaking
with how such things usually work, in Emacs and in other editors.
Since you're up for reviewing a patch to make icomplete-in-buffer work
with fido-mode, I assume you are interested in keeping both working?
> That said, if a simple patch to make icomplete-in-buffer work with
> fido-mode can be achieved, I have no problem reviewing it.
> As you suggested, it could be as simple as integrating
> icomplete--fido-mode-setup into icomplete--in-region-setup.
> But that is relatively tricky as whatever variables are set
> when entering this mode but be properly reset when leaving it.
> Doing this elegantly might not be hard, but it's not trivial
> either.
Currently icomplete--in-region-setup sets completion-show-inline-help
locally and then unconditionally kills that local variable. So we could
do the same for fido-mode's variables, but is it possible that a major
mode might want to set one of them?
Otherwise, if there is to be some mechanism for restoring old
buffer-local values, then we should use it for
completion-show-inline-help too.
--
Sean Whitton
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Wed, 22 Mar 2023 18:42:02 GMT)
Full text and
rfc822 format available.
Message #41 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Sean Whitton <spwhitton <at> spwhitton.name> writes:
> Hello,
>
> On Tue 21 Mar 2023 at 11:40PM GMT, João Távora wrote:
>
>> Yes you may, but no, I haven't. Icomplete and Fido and cousins,
>> it's true. But icomplete-in-buffer wasn't around (at least wasn't
>> in any way functional) when Fido was born. So I don't have
>> any plans of integrating this part of icomplete in Fido, because
>> it's not really how I envision Fido being used for non-minibuffer
>> completion.
>>
>> I have other plans for a future fido-in-buffer where
>> the feedback overlay -- in horizontal or vertical form -- shows
>> in the echo area instead.
>
> Interesting idea. What do you think the advantages are? It's breaking
> with how such things usually work, in Emacs and in other editors.
I wouldn't call it breaking, it's just a different UI. Fido modes
(fido-mode and fido-vertical-mode) work in the minibuffer which shares
its display space with the echo area already, so I wouldn't think it's
that odd.
> Since you're up for reviewing a patch to make icomplete-in-buffer work
> with fido-mode, I assume you are interested in keeping both working?
As I said, only if an elegant enough patch can be devised for the
current icomplete-in-buffer functionality.
>> That said, if a simple patch to make icomplete-in-buffer work with
>> fido-mode can be achieved, I have no problem reviewing it.
>> As you suggested, it could be as simple as integrating
>> icomplete--fido-mode-setup into icomplete--in-region-setup.
>> But that is relatively tricky as whatever variables are set
>> when entering this mode but be properly reset when leaving it.
>> Doing this elegantly might not be hard, but it's not trivial
>> either.
>
> Currently icomplete--in-region-setup sets completion-show-inline-help
> locally and then unconditionally kills that local variable. So we could
> do the same for fido-mode's variables, but is it possible that a major
> mode might want to set one of them?
>
> Otherwise, if there is to be some mechanism for restoring old
> buffer-local values, then we should use it for
> completion-show-inline-help too.
Yes, that's what's needed. "killing the variable" isn't the right
approach since that erases a pre-override buffer-local setting.
João
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61943
; Package
emacs
.
(Thu, 23 Mar 2023 19:14:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 61943 <at> debbugs.gnu.org (full text, mbox):
Hello,
On Wed 22 Mar 2023 at 06:43PM GMT, João Távora wrote:
> Sean Whitton <spwhitton <at> spwhitton.name> writes:
>
>> Interesting idea. What do you think the advantages are? It's breaking
>> with how such things usually work, in Emacs and in other editors.
>
> I wouldn't call it breaking, it's just a different UI. Fido modes
> (fido-mode and fido-vertical-mode) work in the minibuffer which shares
> its display space with the echo area already, so I wouldn't think it's
> that odd.
Looking forward to trying it.
>> Since you're up for reviewing a patch to make icomplete-in-buffer work
>> with fido-mode, I assume you are interested in keeping both working?
>
> As I said, only if an elegant enough patch can be devised for the
> current icomplete-in-buffer functionality.
Cool.
--
Sean Whitton
This bug report was last modified 1 year and 314 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.