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:12:18 +0900

MaGelan <magel4an@gmail.com> writes:

It works! Ivy is able to show the options. You are right.

I forgot to install ivy package when I launched emacs -Q.

Thank you a lot!!

> 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]