summaryrefslogtreecommitdiff
path: root/lisp/minibuffer.el
diff options
context:
space:
mode:
authorJoão Távora <joaotavora@gmail.com>2019-12-24 10:40:39 +0000
committerJoão Távora <joaotavora@gmail.com>2019-12-31 13:31:45 +0000
commitb1c3ed9f328fccc04b80d2991a4f8d06ead186fb (patch)
tree535f601ba0711a2852fd1ad67aa14b2af7c4c1f2 /lisp/minibuffer.el
parente3276f36c08691d6789b8eb49923735dc9565642 (diff)
downloademacs-b1c3ed9f328fccc04b80d2991a4f8d06ead186fb.tar.gz
Move flex style's minibuffer-default-aware sorting to lisp/icomplete.el
This moves the logic from the series of commits starting in the commit named: Improve sorting of flex completion style with non-nil minibuffer-default to lisp/icomplete.el, so far the only confirmed beneficiary of that functionality. * lisp/icomplete.el (icomplete--sorted-completions): Consider minibuffer-default here. * lisp/minibuffer.el (completion--flex-adjust-metadata): Simplify. (cherry picked from commit 0d2a711dc9a65dc8eb6e995369e70cddbcd7d9a4)
Diffstat (limited to 'lisp/minibuffer.el')
-rw-r--r--lisp/minibuffer.el28
1 files changed, 5 insertions, 23 deletions
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index f900557296e..5ad51c0dd8a 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -3596,9 +3596,10 @@ that is non-nil."
;; JT@2019-12-23: FIXME: this is still wrong. What
;; we need to test here is "some input that actually
;; leads to flex filtering", not "something after
- ;; the minibuffer prompt". The latter is always
- ;; true for file searches, meaning the next clauses
- ;; will be ignored.
+ ;; the minibuffer prompt". Among other
+ ;; inconsistencies, the latter is always true for
+ ;; file searches, meaning the next clauses will be
+ ;; ignored.
(> (point-max) (minibuffer-prompt-end)))
(sort
pre-sorted
@@ -3606,26 +3607,7 @@ that is non-nil."
(let ((s1 (get-text-property 0 'completion-score c1))
(s2 (get-text-property 0 'completion-score c2)))
(> (or s1 0) (or s2 0))))))
- (minibuffer-default
- ;; If we have an empty pattern and a non-nil default, we
- ;; want to make sure that default is bubbled to the top
- ;; so that a "force-completion" operation will select
- ;; it. We want that to happen even if it doesn't match
- ;; the completion perfectly.
- (cl-loop
- ;; JT@2019-12-23: FIXME: ideally, we want to use
- ;; flex-matching itself on the default itself, not
- ;; `equal' or `string-prefix-p'.
- for fn in '(equal string-prefix-p)
- thereis (cl-loop
- for l on pre-sorted
- for comp = (cadr l)
- when (funcall fn minibuffer-default comp)
- do (setf (cdr l) (cddr l))
- and return (cons comp pre-sorted))
- finally return pre-sorted))
- (t
- pre-sorted))))))
+ (t pre-sorted))))))
`(metadata
(display-sort-function
. ,(compose-flex-sort-fn