Cc: dmitry@gutov.dev, juri@linkov.net
From: Spencer Baugh <sbaugh@janestreet.com>
Date: Wed, 15 May 2024 16:26:50 -0400
try-completion and choose-completion have different behavior; with the
emacs22 completion style, the former preserves the text after point
(while ignoring it), whereas the latter deletes the text after point.
1. emacs -Q
2. In scratch, type "inhibit-asdf" and move point to after the "-"
3. Type "q" and M-<tab>
The buffer now contains "inhibit-quitasdf", because the emacs22 style
ignored the text after point and completed on "inhibit-q".
4. C-/ C-/ to change the buffer back to "inhibit-asdf"
5. M-<tab>
The *Completions* buffer will be displayed, containing among others
"inhibit-quit" as a completion, because the emacs22 style ignored the
text after point and completed on "inhibit-".
6. Use M-<down> and M-<ret> to select and choose "inhibit-quit"
The buffer now contains "inhibit-quit".
The two ways of selecting completions should behave the same.
I suggest that the behavior of not deleting the text after point is
better. The emacs22 style takes care to not delete the text after point
in try-completion and in completion cycling; we should take similar care
in choose-completion.
If making these two ways consistent means we need to change the
behavior of emacs22 style of completion, then I'm sorry, but we cannot
do that. This style is a legacy style, and is there to provide the
legacy behavior for those who need it.