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

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

Re: completing-read does not display options in new frames


From: MaGelan
Subject: Re: completing-read does not display options in new frames
Date: Fri, 05 May 2023 16:04:01 +0900

Platon Pronko <platon7pronko@gmail.com> writes:

Thank you for trying to help but I could not make this work.

I don't know why but even with emacs -Q I cannot show the options right away.

I think that once the completing-read gets the focus, the minbuffer is
blocked and only after I force the refresh with Tab the options are
shown.

I tried with ivy and vertico so far. None of them solve the issue
because it the issue is with the completing-read, I think.


> On 2023-05-01 11:52, Ma Gelan wrote:
>> Thank you for trying to help.
>> 
>> I feel that I did not explain my issue well.
>> 
>> I tried this: emacs -Q -l test.el
>> 
>> With test.el having the code.
>> 
>> What I get is two emacs frames. The main frame is on *scratch* buffer,
>> and the other frame is just a miniframe. If I focus the miniframe I get
>> the 'Select:' prompt, no options are shown. I expect to see a list of
>> vertical options but they only show if I press tab. In this case they
>> show in the other window, because that is the vanilla behavior in emacs,
>> but In my version I have the completion directly in the minibuffer. In
>> both cases, my configuration and emacs -Q, the options do not show right
>> away, which means that I have to actively press Tab to show them.
>> 
>> My question is: How do I show the options without having to press Tab?
>> 
>> I would like to see them listed as soon as the minibuffer shows up.
>> 
>> This happens in the same frame in my config, but it does not happen if
>> I create a new frame.
>> 
>> Here is more info:
>> 
>> OS: Arch Linux
>> Emacs: 28.2
>> WM: Sway 1.8.1
>
> On my machine the completions are never shown right away, both in new frame 
> an in current frame.
> Here's the code I used to test completions in current frame:
>
> (defun test-this-frame-completing-read ()
>    (interactive)
>    (completing-read "Select: " '("first" "second" "third")))
>
> ;; invoked via M-x test-this-frame-completing-read
>
> My version is a bit newer (30.0.50, a57a8b75f50b), so there might be some 
> changes between versions that resulted in options not being shown immediately.
>
>
> Maybe you can try using Ivy package? It provides an improved completion 
> backend. I've tested it with the following code, works for me (completions 
> are shown immediately):
>
> (defun test-miniframe-completing-read ()
>       "Test miniframe completing read"
>       (interactive)
>       (with-selected-frame (make-frame '((name . "emacs-miniframe")
>       (minibuffer . only)
>       (width . 120)
>       (height . 33)))
>       (unwind-protect
>           (let ((choices '("first" "second" "third")))
>               (completing-read "Select: " choices))
>           (delete-frame))))
>
> (require 'package)
> (package-initialize)
> (ivy-mode 1)
>
> ;; M-x test-miniframe-completing-read



reply via email to

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