diff options
author | João Távora <joaotavora@gmail.com> | 2019-01-24 18:04:52 +0000 |
---|---|---|
committer | João Távora <joaotavora@gmail.com> | 2019-01-25 13:04:43 +0000 |
commit | f845f8a279cfc2acd1051b4cd4924e2aede54017 (patch) | |
tree | cbd6b85c1019374e35ced57dffd6e7e653feed89 | |
parent | 96e386e60de1d4ae9d702fc376ef7a9279a6aa66 (diff) | |
download | emacs-f845f8a279cfc2acd1051b4cd4924e2aede54017.tar.gz |
Use minibuffer-default in completion-all-sorted-completions (bug#34083)
* lisp/minibuffer (completion-all-sorted-completions): Sort with the
default on top.
-rw-r--r-- | lisp/minibuffer.el | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index c8b84b0e947..b757eb8a5a6 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1244,12 +1244,16 @@ scroll the window of possible completions." (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. + ;; 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 (lambda (c1 c2) - (> (length (member c1 hist)) - (length (member c2 hist)))))))) + (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)))))))))) ;; Cache the result. This is not just for speed, but also so that ;; repeated calls to minibuffer-force-complete can cycle through ;; all possibilities. |