Subject: Re: bug#55800: using rgrep function interactively with fido-mode or fido-vertical-mode causes errors

From: Juri Linkov <[email-masked]>
Date: Sun, 12 Jun 2022 21:24:41 +0300

>> If this is an intended behaviour that is considered to be intuitive then
>> sorry about the bug report. I was used to how things like  the rg package
>> worked and that might have been my fault.
>
> Actually I don't know the intended behaviour of fido-mode, so your
> bug report is a valid request to find the source of the problem.
> If fido-mode works as intended, then rgrep could be fixed.

Indeed, part of the problem was in fido-mode.  When the default value
is a string, then the default value is bubbled to the top of the
completion list:

```
(completing-read
 (format-prompt "Prompt" "b")
 '("a1" "b1" "c1") nil nil nil nil
 "b")
```

in fido-vertical-mode displays:
  - b1
  - a1
  - c1

But for a list of default values:

```
(completing-read
 (format-prompt "Prompt" "b")
 '("a1" "b1" "c1") nil nil nil nil
 '("b" "d"))
```

doesn't take into account the first element of the defaults:

  - a1
  - b1
  - c1

So now pushed a better fix than was in bug#38992.

> So maybe fido-mode could be fixed to always provide the default value
> as the first highlighted candidate?  Then RET will select it.

Another part of the problem is still unsolved and the question still is:
shouldn't fido-mode bubble the default value to the top of the list
even when the default value doesn't exist in the list of completion
candidates?  This is the same question as was asked in
https://debbugs.gnu.org/38992#76