emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/orderless 39202177e1 040/204: Undo previous optimizatio


From: ELPA Syncer
Subject: [elpa] externals/orderless 39202177e1 040/204: Undo previous optimization as it is invalid in general :(
Date: Tue, 11 Jan 2022 12:58:15 -0500 (EST)

branch: externals/orderless
commit 39202177e10c37a6657b2bc0bab4d265f76b5c62
Author: Omar Antolín <omar.antolin@gmail.com>
Commit: Omar Antolín <omar.antolin@gmail.com>

    Undo previous optimization as it is invalid in general :(
---
 orderless.el | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/orderless.el b/orderless.el
index a16bbc1b7d..de21508f65 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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]