[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#70968: 29.2.50; choose-completion on an emacs22-style completion del
From: |
Eli Zaretskii |
Subject: |
bug#70968: 29.2.50; choose-completion on an emacs22-style completion deletes text after point |
Date: |
Thu, 16 May 2024 21:25:32 +0300 |
> Date: Thu, 16 May 2024 20:26:31 +0300
> Cc: 70968@debbugs.gnu.org, juri@linkov.net,
> Stefan Monnier <monnier@IRO.UMontreal.CA>
> From: Dmitry Gutov <dmitry@gutov.dev>
>
> On 16/05/2024 11:13, Eli Zaretskii wrote:
> >> 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.
>
> I don't think that would be required exactly.
>
> The problem here (IIUC) is that completion behaves differently with the
> emacs22 style depending on whether the execution path went through
> choose-completion (which is not a method of completion style but a
> common subroutine) or not (when completion--do-completion performed
> expansion).
I understand that much. But what did these two (or their
then-equivalents) do in Emacs 22 and Emacs 23?