[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#62700: 29.0.60; minibuffer-{previous,next,choose}-completion behave
From: |
Juri Linkov |
Subject: |
bug#62700: 29.0.60; minibuffer-{previous,next,choose}-completion behave unintuitively when point is not at end of buffer |
Date: |
Sun, 07 Apr 2024 20:16:03 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
>>> 6. C-h v -path
>>> 7. C-a to move point to before -path
>>> 8. <tab> to show completions of variables ending in -path
>>> 9. Use M-<up> and M-<down> to switch between completions. Now as you
>>> switch completions, they are inserted at point, *without* replacing the
>>> text already in the buffer. So e.g. the minibuffer will contain
>>> "load-path-path".
>>> 10. Likewise, if you (setq minibuffer-completion-auto-choose nil), M-RET
>>> inserts the completion string at point, without replacing the text in
>>> the minibuffer, so you will get "load-path-path".
>>>
>>> I think this is basically just a bug. Hopefully we can fix this before
>>> Emacs 29 is released, because this is the last thing which stops these
>>> new commands from being a really great improvement to the Emacs
>>> completion defaults.
>>
>> I agree that it would be nice to fix this in Emacs 29.
>> But the problem is that this would require non-trivial changes.
>> We need to apply a small part of the patch mentioned in
>> bug#47711, bug#48356, bug#48841, bug#60313 and located at
>> https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg00412.html
>> that implements the following FIXME item in 'completion-all-completions':
>>
>> ;; FIXME: We need to additionally return the info needed for the
>> ;; second part of completion-base-position.
>>
>> When it will return from 'completion-all-completions' not only the start
>> position of a completion, but also its end, then we could use this
>> additional information for M-<up> and M-<down>.
>
> BTW: do you know if anyone has done any more work on resolving this
> FIXME?
I'm not aware of anyone working on this FIXME.
The last complete patch was posted by Daniel Mendler to
https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg00412.html
and to bug#47711.
> Maybe there's an open bug for it, or some work I could start
> from?
There are two open bug reports: bug#47711 and bug#48356.
> I'm running into bug#62700 again for completion tables which use
> boundaries but aren't file completion. The heuristic I added only works
> for file completion, but I'm working on a completion table which uses
> boundaries for completing dotted.field.paths in OCaml, and so completing
> at dotted.fie|.paths inserts "dotted.field." and deletes the "paths"
> part. To fix this, I think I should just fix this FIXME once and for
> all (and then we can delete the heuristic I added)
The patch created by Daniel Mendler should resolve this FIXME,
maybe after some minor updates.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#62700: 29.0.60; minibuffer-{previous,next,choose}-completion behave unintuitively when point is not at end of buffer,
Juri Linkov <=