bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#43120: 28.0.50; fido-mode: M-j before completions appear selects wro


From: Sean Whitton
Subject: bug#43120: 28.0.50; fido-mode: M-j before completions appear selects wrong choice
Date: Fri, 04 Sep 2020 07:47:24 -0700

Hello Lars,

On Fri 04 Sep 2020 at 05:27AM +02, Lars Ingebrigtsen wrote:

> Sean Whitton <spwhitton@spwhitton.name> writes:
>
>> Unfortunately it does not, so I guess icomplete-fido-exit is not exiting
>> the minibuffer through that path.
>
> Hm.  Am I misreading the code here?  So the else branch definitely calls
> exit-minibuffer...
>
> (defun icomplete-fido-exit (force)
> [...]
>   (if (and (not force) minibuffer--require-match)
>       (minibuffer-complete-and-exit)
>     (exit-minibuffer)))
>
> And the "then" branch ends up here:
>
> (defun minibuffer-complete-and-exit ()
> [...]
>   (completion-complete-and-exit (minibuffer-prompt-end) (point-max)
>                                 #'exit-minibuffer))
>
> Hm...  which then calls completion--complete-and-exit, which should then
> end up calling the exit function in...  hm.  Perhaps not all the
> branches?  There's a bunch of callbacks, but I thought I followed them
> all to the end and they all ended up calling the exit function, but
> perhaps not?  Would it be possible for you to edebug through
> completion-complete-and-exit?

I think I see what the problem is.  I was doing the following to
generate a test case: C-h f comp [wait for completions to appear] C-g

This leaves completion-content-when-empty populated to interfere with
the next run, as getting out of the minibuffer that way does not clear
the variable, but it should.

Might it work to set the variable buffer-local to the minibuffer?  Then
we can be sure it would always be cleared.

-- 
Sean Whitton





reply via email to

[Prev in Thread] Current Thread [Next in Thread]