emacs-devel
[Top][All Lists]
Advanced

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

Re: Updating *Completions* as you type


From: sbaugh
Subject: Re: Updating *Completions* as you type
Date: Tue, 17 Oct 2023 11:01:01 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

Tangentially, Juri, I have a thought about a redesign of
minibuffer-next-completion and minibuffer-choose-completion.

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*)
- 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)"
- 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
- C-u M-RET inserts the default in the the minibuffer, without exiting
  (matching the behavior of C-u minibuffer-choose-completion)

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.

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.




reply via email to

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