GNU bug report logs -
#38992
27.0.60; when enabled, fido-mode seems to break vc-git-grep
Previous Next
Reported by: waah <at> yellowfrog.io
Date: Mon, 6 Jan 2020 17:47:02 UTC
Severity: normal
Merged with 39407
Found in versions 27.0.60, 28.0.50
Done: João Távora <joaotavora <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 21.01.2020 2:04, Stefan Monnier wrote:
>>> I'm not very familiar with the code. Do we really need the
>>> minibuffer-force-complete call there? I commented it out and can't see
>>> the difference.
>
> The `minibuffer-force-complete` call is the one which actually selects
> the "first candidate" from the list of completions, so I do think it's necessary.
Oh. Right. Somehow I hadn't tested a scenario where this would matter.
> IIUC the bug under discussion is related to the `required` argument of
> `completing-read` (and to `minibuffer-completion-confirm`).
Right.
> If `required` was nil (as is the case in `grep-read-files` which
> I believe is the relevant function here), then when `test-completion`
> fails, we should probably just call `exit-minibuffer` (rather than tell
> the user that they should do that).
Ido added an extra prompt in situations like this, I think. What you're
saying was my first suggestion, but it would require a more invasive change.
And icomplete-force-complete-and-exit, as implemented, calls
minibuffer-force-complete-and-exit which doesn't seem to care (or know?)
that REQUIRED was nil. If you have a particular change in mind, I'd
happily try a patch.
BTW, I now see that my patch changes a function belonging to icomplete,
whileas the intention was only to fix fido-mode's behavior. Do you think
the change fits icomplete-mode as well?
> The problem here is probably caused by the fact that fido-mode arranges
> for `minibuffer-force-complete` to choose the *default* rather than to
> choose a candidate from the completion table. It's rare for
> a completion table to return candidates that don't pass
> `test-completion` (tho it's by not impossible nor incorrect), but it's
> much less rare for the default not to pass `test-completion`.
Um, not sure I understand. The problem here is that typing 'all' (unless
it matches some of the local files names) or '*.el' and typing RET
doesn't work. minibuffer-force-complete tries to choose a completion
from the table, and when it can't, we get the "Incomplete" message.
Though if it can (there's a matching filename), it ends up worse for the
user, in this particular situation.
This bug report was last modified 5 years and 77 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.