Subject: Re: bug#51650: Autocomplete: first Tab should show *Completions* buffer

From: Eli Zaretskii <[email-masked]>
Date: Sun, 07 Nov 2021 21:00:13 +0200

> From: Carlos Pita <[email-masked]>
> Date: Sun, 7 Nov 2021 15:40:22 -0300
> Cc: [email-masked]
> 
> I remain unconvinced. I'll restate the above in a slightly more
> precise manner, but other than that I have nothing to add and if this
> is getting tiresome by all means feel free to close it.
> 
> > > Suppose I now abort the process and do `M-x cd ~/Desktop` and then
> > > enter the find-file completion again, I'm in the same situation, yet I
> > > press Tab and I get "not unique" and I have to press Tab again in
> > > order to get the list of candidates. Why should the behavior differ?
> >
> > Because you haven't typed anything yet, so Emacs doesn't know what you
> > have in mind.  In the other case, it has some hint.
> 
> For me the relevant state includes:
> 
> - I'm in the ~/Desktop directory.
> - I've not yet received any information about ~/Desktop being unique or not.
> 
> By adding one of:
> 
> - I've reached ~/Desktop from ~/Desk by pressing Tab.
> - I've reached ~/Desktop by launching Emacs from ~/Desktop.
> - I've reached ~/Desktop by changing the working directory.
> etc.
> 
> ... or, more succinctly:
> 
> - I've reached ~/Desktop by (immediately before) pressing Tab during
> the same "completing session".
> - I've reached ~/Desktop by other means.
> 
> ... I can make the relevant state different, but I cannot grasp how
> the added information is relevant. You say in the first case I have
> typed something, namely Tab, but that was in a different context
> (~/Desk) and I don't find it more relevant than the fact that I have
> typed "M-x cd ~/Desktop" in the second example. What's that thing that
> the user has in mind?
> 
> If the "not unique" message were shown at the end of step 4 instead,
> that would make an arguably relevant difference. In this variant, the
> first Tab (both in 2 and in 4) is always the one conveying the "not
> unique" hint, in 2 it's required only for this. Now in step 5 the
> information set includes: "I know that ~/Desktop is not unique", while
> this information is missing from the scenario in which I reached
> ~/Desktop by, say, launching emacs from that directory. I still find
> this inconvenient but it's a way of resolving what I see as
> inconsistent.
> 
> Another way is to make the behavior in 2 as the one in 5, that is to
> require one Tab in 2 and show "not unique" and completions at
> the same moment, it is the variant I prefer.
> 
> A third, uber annoying way, is to make the behavior in 5 as the one in
> 2, that is to require two Tabs in 5, so going from ~/Desk to the
> completion menu for ~/Desktop would require three Tabs.

We are mis-communicating.  Let's start from the beginning.

Scenario #1:

  . User presses C-x C-f TAB
  . Emacs says [Complete but not unique]
  . User presses TAB once more
  . Emacs pops up *Completions* and still says [Complete but not unique]

Scenario #2:

  . User presses C-x C-f Desk TAB
  . Emacs completes to ~/Desktop/
  . User presses TAB once more
  . Emacs pops up *Completions* and says [Complete but not unique]

The difference after the first TAB is because in Scenario #1 there's
nothing to complete, and what's in the minibuffer is already a valid
response to the prompt: it specifies an existing file/directory.
Whereas in Scenario #2 Emacs _can_ complete, and what the user typed
is not an existing file.

OK?