Subject: bug#61943: 29.0.60; icomplete--in-region-setup should activate icomplete-fido-mode-map too

From: João Távora <[email-masked]>
Date: Tue, 21 Mar 2023 23:40:50 +0000

On Tue, Mar 21, 2023 at 10:06 PM Sean Whitton <[email-masked]> 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