* lisp/simple.el (next-completion): Handle first completion specially.

When completions-header-format is nil and completion-show-help is nil,
the first completion is at the beginning the buffer, so 'M-<down>'
missed it and moved to the second completion.  Handle this case by
setting/checking the special text-property 'first-completion' that
is nil at the first call (bug#60411).
This commit is contained in:
Gregory Heytings 2023-01-12 19:47:28 +02:00 committed by Juri Linkov
parent cfd2b3504a
commit 9ecebcdded

View file

@ -9755,6 +9755,14 @@ Also see the `completion-auto-wrap' variable."
(let ((tabcommand (member (this-command-keys) '("\t" [backtab])))
pos)
(catch 'bound
(when (and (bobp)
(> n 0)
(get-text-property (point) 'mouse-face)
(not (get-text-property (point) 'first-completion)))
(let ((inhibit-read-only t))
(add-text-properties (point) (1+ (point)) '(first-completion t)))
(setq n (1- n)))
(while (> n 0)
(setq pos (point))
;; If in a completion, move to the end of it.