Stefan Monnier <monn...@iro.umontreal.ca> writes: >> Ping! How should we proceed with this bug report? > > I don't quite understand the question. > > After: > > Eli wrote: >> Stefan wrote: >> > I'm not sure it's terribly important to preserve this detail of the >> > behavior of `Emacs-22`. The `emacs22` style does not aim to provide the >> > illusion you're running an old Emacs. I named it that way because >> > I couldn't come up with a good descriptive name for it. If it >> > misbehaves, I don't see a need to be bug-compatible, especially since >> > this doesn't affect ELisp code but users. >> >> I think it does, sorry. Suchj old behavior is a de-facto standard. >> If we change that, we should at least have a knob to get back the old >> behavior. > > I thought you had decided that the current behavior is not a bug. > I'm fine with this choice and we can close it as such. > Tho maybe we'd want to deprecate that `emacs22` style because of > those odd cases.
I definitely don't want to just close this bug. I often get user complaints about this behavior. In my experience, for novice users, it's a fairly significant inconsistency in the default Emacs completion experience. I see a few good ways to fix this in a backwards-compatible way: A. Fix it in emacs22 with a defcustom to get back the old behavior. B. Deprecate the emacs22 style and replace it with a new style called `ignore-suffix` which has this bug fixed, and which replaces emacs22 in the default value of completion-styles. C. Follow this idea I suggested earlier: Currently emacs22 is the only style that ignores the text after point when completing. But, this is often useful behavior, and I'd like to support it in other completion styles. Specifically, I think it would be nice if completion always: 1. First, run the completion styles on the literal text in the completion region or minibuffer. 2. If that returned nil, run the completion styles again, but without the text after point in the region or minibuffer. Step 2 when run with the basic style is equivalent to the emacs22 style. So, emacs22 could be removed from the default completion-styles, since a completion-styles of '(basic) would be equivalent to '(basic emacs22). I think this would make it straightforward to then fix choose-completion to behave correctly when the completion was generated through step 2. I personally like the option C best, because I already want to do this generalization, so that the ignore-suffix behavior also works for other completion styles (e.g. partial-completion or substring). But I would like to get some feedback on this idea from others first.