Commit e8b6cc9a authored by João Távora's avatar João Távora

cycle-sort-function prevails in completion-all-sorted-completions

* lisp/minibuffer.el (completion-all-sorted-completions): If
completion table has cycle-sort-function, that prevails over other
sorting strategies.
parent 55478e4a
Pipeline #817 failed with stage
in 52 minutes and 55 seconds
......@@ -1246,19 +1246,23 @@ scroll the window of possible completions."
(setq all (delete-dups all))
(setq last (last all))
(setq all (if sort-fun (funcall sort-fun all)
;; Prefer shorter completions, by default.
(sort all (lambda (c1 c2) (< (length c1) (length c2))))))
;; Prefer recently used completions and put the default, if
;; it exists, on top.
(when (minibufferp)
(let ((hist (symbol-value minibuffer-history-variable)))
(setq all (sort all
(cond
(sort-fun
(setq all (funcall sort-fun all)))
(t
;; Prefer shorter completions, by default.
(setq all (sort all (lambda (c1 c2) (< (length c1) (length c2)))))
(if (minibufferp)
;; Prefer recently used completions and put the default, if
;; it exists, on top.
(let ((hist (symbol-value minibuffer-history-variable)))
(setq all
(sort all
(lambda (c1 c2)
(cond ((equal c1 minibuffer-default) t)
((equal c2 minibuffer-default) nil)
(t (> (length (member c1 hist))
(length (member c2 hist))))))))))
(length (member c2 hist))))))))))))
;; Cache the result. This is not just for speed, but also so that
;; repeated calls to minibuffer-force-complete can cycle through
;; all possibilities.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment