muffinmad / emacs-mini-frame

Show minibuffer in child frame on read-from-minibuffer
GNU General Public License v3.0
314 stars 20 forks source link

Conflicts with icomplete/fido? #83

Open vidjuheffex opened 5 months ago

vidjuheffex commented 5 months ago

This is all I see:

Screenshot 2024-01-30 at 11 52 31 AM

It will flash what I did first in the input, like: M-x, or select a project but then empties. It doesn't let me type in it, but will flash "no matches" at me.

I ran the config you can see there as well.

"GNU Emacs 29.1 (build 1, x86_64-apple-darwin22.6.0, NS appkit-2299.70 Version 13.5 (Build 22G74))

muffinmad commented 5 months ago

What I tried:

emacs -Q
M-x p-ini
M-x icomplete-mode
M-x mini-frame-mode

Then evaluated your mini-frame-show-parameters settings and M-x m

Screenshot 2024-01-30 at 23 12 33

Maybe it is something else in your config? Please, try to reproduce the issue starting from emacs -Q

vidjuheffex commented 5 months ago

May I ask what p-ini is?

muffinmad commented 5 months ago

It's package-initialize. Emacs shows the following message when invoking M-x package-initialize

You can run the command ‘package-initialize’ with M-x p-ini
vidjuheffex commented 5 months ago

Thank you!

Here's some findings: TLDR: Icomplete-mode works as does Icomplete-vertical-mode, as does fido-mode. it is setting fido-mode with vertical-mode that seems to break things:

Just icomplete (but really, they all work):

image

Icomplete-vertical-mode w/ Fido-mode:

image
muffinmad commented 5 months ago

Now, let's try this configuration without mini-buffer but with minibuffer separate frame with auto resize enabled:

emacs -Q --eval "(setq default-frame-alist '((minibuffer . nil)))" --eval "(setq resize-mini-frames t)"
M-x icomplete-vertical-mode

Now, after invoking M-x and typing some character, minibuffer frame is not looks like expected:

Screenshot 2024-02-06 at 11 12 26

So looks like this issue should be addressed to icomplete-vertical-mode. Once it will work with dedicated minibuffer frame, I'm sure it will work with mini-frame as well.