Function: icomplete-backward-completions

icomplete-backward-completions is an interactive and byte-compiled function defined in icomplete.el.gz.

Signature

(icomplete-backward-completions)

Documentation

Step backward completions by one entry.

Last entry becomes the first and can be selected with icomplete-force-complete-and-exit. Return non-nil iff something was stepped.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/icomplete.el.gz
(defun icomplete-backward-completions ()
  "Step backward completions by one entry.
Last entry becomes the first and can be selected with
`icomplete-force-complete-and-exit'.
Return non-nil iff something was stepped."
  (interactive)
  (let* ((beg (icomplete--field-beg))
         (end (icomplete--field-end))
         (comps (completion-all-sorted-completions beg end))
         last-but-one)
    (prog1
        (cond ((and icomplete-scroll icomplete--scrolled-past)
               (push (pop icomplete--scrolled-past) comps)
               (setq icomplete--scrolled-completions comps))
              ((and (not icomplete-scroll)
                    (consp (cdr (setq last-but-one (last comps 2)))))
               ;; At least two elements in comps
               (push (car (cdr last-but-one)) comps)
               (setcdr last-but-one (cdr (cdr last-but-one)))))
      (completion--cache-all-sorted-completions beg end comps))))