[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Updating *Completions* as you type
From: |
Juri Linkov |
Subject: |
Re: Updating *Completions* as you type |
Date: |
Tue, 17 Oct 2023 21:20:39 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
> What if the concept of "current selected completion" was unified with
> "the default completion"? This could be a nice, general UI.
>
> Specifically, with switch-to-buffer and a default of init.el:
>
> - If init.el is present in *Completions*, start out with point on it.
> This would be purely a display nicety, it wouldn't actually affect
> anything yet. (This would be easy with my patch which I posted
> elsewhere in this thread to preserve the location of point in
> *Completions*)
I think preselecting the default value in the middle of completions
would make sense only when completions were sorted by the order of the
list of default values (from M-n M-n ...). Then the first default value
would be at the top of completions, and it would easier for users
to navigate completions top-down.
> - If and when the user invokes minibuffer-next-completion:
> - The default changes to whatever the new selected completion is
> - The prompt text "(default init.el)" changes permanently to literally
> "(default selected completion)"
Changing the prompt might interfere with such packages as minibuf-eldef.el
and other cases of customized minibuffer-default-prompt-format.
Also this might break commands that manually handle the default value
for empty input.
> - RET, as always, chooses the default if the minibuffer is empty; if the
> user has done minibuffer-next-completion, the default is the selected
> completion, so RET will choose that.
> - M-RET (minibuffer-choose-completion) is replaced with a new command
> which immediately chooses the default, whatever it is, ignoring the
> current contents of the minibuffer
What should RET do after the user navigated in *Completions* and
switched back to the minibuffer. A different candidate is highlighted
in *Completions*, while the default value remains unchanged.
BTW, while looking at this case I found a problem with your first patch:
after navigating in *Completions* and switching back to the minibuffer
point is reset to the beginning of the *Completions* buffer.
> - C-u M-RET inserts the default in the the minibuffer, without exiting
> (matching the behavior of C-u minibuffer-choose-completion)
Usually the default is inserted by M-n.
> I think this has some nice benefits in reducing the number of concepts
> people need to track. If the minibuffer is empty, they can just use
> minibuffer-next-completion a few times followed by RET to select a
> completion, no need to use M-RET. Plus, the new M-RET and C-u M-RET
> would be useful even to users who don't use minibuffer-next-completion.
It seems this is intended to solve the problem of a mismatch between
the highlighted candidate and the contents of the minibuffer?
Such problem exists, for example, in icomplete-mode where
RET returns the contents of the minibuffer, so a special key 'C-j'
is dedicated to select the highlighted candidate. For selecting
a highlighted candidate from *Completions* such key is 'M-RET'.
> I also think this would make it less painful to set
> minibuffer-completion-auto-choose to nil, which matches
> completion-in-region better and also works much better with
> completions-auto-update.
Sorry, I don't understand how this would make
minibuffer-completion-auto-choose=nil less painful.
Since there is no concept of the default value for completion-in-region,
'M-RET' is the only way to choose the highlighted candidate.
- Re: Updating *Completions* as you type, (continued)
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/17
- RE: [External] : Re: Updating *Completions* as you type, Drew Adams, 2023/10/17
- Re: Updating *Completions* as you type, Juri Linkov, 2023/10/18
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/18
- Re: Updating *Completions* as you type, Juri Linkov, 2023/10/18
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/18
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/18
- Re: Updating *Completions* as you type, Juri Linkov, 2023/10/19
- Re: Updating *Completions* as you type, Juri Linkov, 2023/10/20
- Re: Updating *Completions* as you type, sbaugh, 2023/10/17
- Re: Updating *Completions* as you type,
Juri Linkov <=
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/17
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/17
- Re: Updating *Completions* as you type, Juri Linkov, 2023/10/18
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/18
- Re: Updating *Completions* as you type, Juri Linkov, 2023/10/18
- Re: Updating *Completions* as you type, Spencer Baugh, 2023/10/18
RE: [External] : Re: Updating *Completions* as you type, Drew Adams, 2023/10/15
Re: zcomplete, Philip Kaludercic, 2023/10/20