summaryrefslogtreecommitdiff
path: root/orderless.el
diff options
context:
space:
mode:
authorOmar Antolín <omar.antolin@gmail.com>2020-04-17 00:06:36 -0500
committerOmar Antolín <omar.antolin@gmail.com>2020-04-17 00:06:36 -0500
commit39202177e10c37a6657b2bc0bab4d265f76b5c62 (patch)
tree6d8d06f44cd0425480a7220e48b5a7a6496739a3 /orderless.el
parent2813ffb2b103d660f45a845e255015bf71e9f485 (diff)
Undo previous optimization as it is invalid in general :(
Diffstat (limited to 'orderless.el')
-rw-r--r--orderless.el23
1 files changed, 8 insertions, 15 deletions
diff --git a/orderless.el b/orderless.el
index a16bbc1..de21508 100644
--- a/orderless.el
+++ b/orderless.el
@@ -112,18 +112,11 @@ The predicate PRED is used to constrain the entries in TABLE.
This function is part of the `orderless' completion style."
(save-match-data
(let* ((limit (car (completion-boundaries string table pred "")))
- (all-regexps (split-string (substring string limit)
- orderless-regexp-separator
- t))
- (pending-regexps all-regexps)
- (first (if (> limit 0)
- (substring string 0 limit)
- (let ((first (car all-regexps)))
- (if (not (string= first (regexp-quote first)))
- ""
- (setq pending-regexps (cdr all-regexps))
- first))))
- (all (all-completions first table pred)))
+ (prefix (substring string 0 limit))
+ (all (all-completions prefix table pred))
+ (regexps (split-string (substring string limit)
+ orderless-regexp-separator
+ t)))
(when minibuffer-completing-file-name
(setq all (completion-pcm--filename-try-filter all)))
(condition-case nil
@@ -131,15 +124,15 @@ This function is part of the `orderless' completion style."
(setq all
(cl-loop for original in all
when
- (cl-loop for regexp in pending-regexps
+ (cl-loop for regexp in regexps
always (string-match-p regexp original))
collect ; it's a match, copy and highlight
(cl-loop with candidate = (copy-sequence original)
- for regexp in all-regexps and face from 0 do
+ for regexp in regexps and face from 0 do
(orderless--highlight-match
regexp candidate face)
finally (return candidate))))
- (when all (nconc all limit)))
+ (when all (nconc all (length prefix))))
(invalid-regexp nil)))))
(defun orderless-try-completion (string table pred point &optional _metadata)