[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/orderless 2813ffb2b1 039/204: Optimization: check if fi
From: |
ELPA Syncer |
Subject: |
[elpa] externals/orderless 2813ffb2b1 039/204: Optimization: check if first component is string literal |
Date: |
Tue, 11 Jan 2022 12:58:15 -0500 (EST) |
branch: externals/orderless
commit 2813ffb2b103d660f45a845e255015bf71e9f485
Author: Omar Antolín <omar.antolin@gmail.com>
Commit: Omar Antolín <omar.antolin@gmail.com>
Optimization: check if first component is string literal
---
orderless.el | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/orderless.el b/orderless.el
index de21508f65..a16bbc1b7d 100644
--- a/orderless.el
+++ b/orderless.el
@@ -112,11 +112,18 @@ 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 "")))
- (prefix (substring string 0 limit))
- (all (all-completions prefix table pred))
- (regexps (split-string (substring string limit)
- orderless-regexp-separator
- t)))
+ (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)))
(when minibuffer-completing-file-name
(setq all (completion-pcm--filename-try-filter all)))
(condition-case nil
@@ -124,15 +131,15 @@ This function is part of the `orderless' completion
style."
(setq all
(cl-loop for original in all
when
- (cl-loop for regexp in regexps
+ (cl-loop for regexp in pending-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 regexps and face from 0 do
+ for regexp in all-regexps and face from 0
do
(orderless--highlight-match
regexp candidate face)
finally (return candidate))))
- (when all (nconc all (length prefix))))
+ (when all (nconc all limit)))
(invalid-regexp nil)))))
(defun orderless-try-completion (string table pred point &optional _metadata)
- [elpa] externals/orderless 9cebf2fc8c 106/204: Escape parenthesis in first column of docstrings, (continued)
- [elpa] externals/orderless 9cebf2fc8c 106/204: Escape parenthesis in first column of docstrings, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 93f4bccea1 112/204: Go back to split-string until empty components issue is resolved, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 2d1f68b914 114/204: Fix tiny bug in customization type, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 5c2f44d901 115/204: Allow component separator to be a function, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 43896f3e10 140/204: Accidentally omitted the overview! Bring it back, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless b059c15911 052/204: Make orderless-prefixes more like partial-completion, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless dc3f8da022 076/204: Avoid other cl-pushnes in an autoload, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless a11302737e 018/204: Keep split-string from modifying global match data, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless c9ae65ea16 023/204: Highlight component matches in one of four faces, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 044fac0859 029/204: Revert "Better match face defaults (kindly contributed by Protesilaos)", ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 2813ffb2b1 039/204: Optimization: check if first component is string literal,
ELPA Syncer <=
- [elpa] externals/orderless 25266dfc60 033/204: Update README.org, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 39202177e1 040/204: Undo previous optimization as it is invalid in general :(, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless ecddc3da2e 045/204: Un-nest definition of orderless--highlight-matches, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 582b3a9fa8 031/204: Make all `defface' syntax more efficient+readable, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless c51037b8ef 024/204: Add custom variable for component separator regexp, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 9856eeed32 047/204: Mention prefixes style in overview, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless cacd856f9a 041/204: Leverage completion-regexp-list: simplify code, increase speed!, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 3005cf8ee9 077/204: Merge pull request #12 from noctuid/feature/strict-initialism, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless f8efbdae4d 087/204: Document style dispatches in the README, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless e16fc5ddb1 099/204: Ido has progressive completion too!, ELPA Syncer, 2022/01/11