On Jun 5, 2020, at 3:48 PM, João Távora <joaotavora@gmail.com> wrote:

But isn't the end result what icomplete-vertical is after?
i.e. icomplete with some kind of verticality added?  Or were you
expecting icomplete-vertical to add verticality to fido-mode?

Since fido-mode is just icomplete-mode with nice defaults, icomplete-vertical just becomes fido-vertical. With that patch they took, it works like a charm. I get all the semantics and keybindings of fido-mode, and use the icomplete-vertical-do macro for my yank-pop+ and recentf-list+ functions based on completing-read (the content in these completions tables is better suited to a vertical representation, whereas most of the time I want the default horizontal representation).

The only thing that might be worth investigating is why
icomplete-vertical needs to call icomplete-mode when it's
already enabled.  Maybe we could arrange for this not to be needed at
all and avoid the problem.

I patched icomplete-vertical with (unless icomplete-mode (icomplete-mode)), but it felt like a work-around. I don’t know of any other instance where calling foo-mode non-interactively will break things if it’s already enabled. I thought they were usually idempotent.

Cheers,

Andy