[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