bug#81635: 32.0.50; Change in TAB cycling *Completions* and minibuffer
Sean Whitton <[email protected]>
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
Version: 31.1 Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" [20/Aug 1:50pm -04] wrote: > Stephen Berman <[email protected]> writes: >> When `completion-auto-select' is set to t and `completion-auto-wrap' is >> also t (the default), then TAB and S-TAB cycle through the *Completions* >> buffer and after the last (resp. first) completion candidate switches to >> the minibuffer. In Emacs 30 typing TAB in the minibuffer continues the >> cycling, i.e., TAB continues with the first candidate, S-TAB with the >> last. This behavior changed with commit 5b19ca56f1d9 (bug#74019): since >> then TAB in the minibuffer returns to the last candidate and S-TAB >> returns to the first, and further TABs or S-TABs just bounce back and >> forth between that candidate and the minibuffer rather than cycling >> through *Completions*. That is, after returning to *Completions* from >> the minibuffer you have to switch from TAB to S-TAB or vice versa in >> order to resume cycling through *Completions*. This change in behavior >> seems like unintended fallout from commit 5b19ca56f1d9. The attached >> patch restores the previous cyclic behavior. I've added Spencer Baugh >> (the author of that commit) and Stefan Monnier in Cc:, in case they have >> any comments. > > Thanks for the detailed report. This should fix it, and includes a > test. Thanks, I've installed this on the release branch. I rewrote your commit message to match our conventions, please take a look for next time: Fix TAB to wrap with completion-auto-select t * lisp/minibuffer.el (completions--clear-selection): New function. (minibuffer-hide-completions): Call it. * lisp/simple.el (next-column-completion): Call it (bug#81635). * test/lisp/minibuffer-tests.el (completion-auto-select-test-bug81635): New test. -- Sean Whitton