[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master b000b0a 007/399: ivy.el (ivy--recompute-index): Speed up
From: |
Oleh Krehel |
Subject: |
[elpa] master b000b0a 007/399: ivy.el (ivy--recompute-index): Speed up |
Date: |
Sat, 20 Jul 2019 14:56:37 -0400 (EDT) |
branch: master
commit b000b0a13f22efbe75b26399c35f944001e5e973
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
ivy.el (ivy--recompute-index): Speed up
Return 0 immediately if `name' is empty.
---
ivy.el | 64 +++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 33 insertions(+), 31 deletions(-)
diff --git a/ivy.el b/ivy.el
index e73d258..208d35b 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3156,37 +3156,39 @@ RE-STR is the regexp, CANDS are the current candidates."
(empty (string= name "")))
(unless (eq this-command 'ivy-resume)
(ivy-set-index
- (or
- (cl-position (ivy--remove-prefix "^" name)
- cands
- :test #'ivy--case-fold-string=)
- (and ivy--directory
- (cl-position (concat re-str "/")
- cands
- :test #'ivy--case-fold-string=))
- (and (eq caller 'ivy-switch-buffer)
- (not empty)
- 0)
- (and (not empty)
- (not (eq caller 'swiper))
- (not (and ivy--flx-featurep
- (eq ivy--regex-function 'ivy--regex-fuzzy)
- ;; Limit to 200 candidates
- (null (nthcdr 200 cands))))
- ;; If there was a preselected candidate, don't try to
- ;; keep it selected even if the regexp still matches it.
- ;; See issue #1563. See also `ivy--preselect-index',
- ;; which this logic roughly mirrors.
- (not (or
- (and (integerp preselect)
- (= ivy--index preselect))
- (equal current preselect)
- (and (stringp preselect)
- (stringp current)
- (string-match-p preselect current))))
- ivy--old-cands
- (cl-position current cands :test #'equal))
- (funcall func re-str cands))))
+ (if (string= name "")
+ 0
+ (or
+ (cl-position (ivy--remove-prefix "^" name)
+ cands
+ :test #'ivy--case-fold-string=)
+ (and ivy--directory
+ (cl-position (concat re-str "/")
+ cands
+ :test #'ivy--case-fold-string=))
+ (and (eq caller 'ivy-switch-buffer)
+ (not empty)
+ 0)
+ (and (not empty)
+ (not (eq caller 'swiper))
+ (not (and ivy--flx-featurep
+ (eq ivy--regex-function 'ivy--regex-fuzzy)
+ ;; Limit to 200 candidates
+ (null (nthcdr 200 cands))))
+ ;; If there was a preselected candidate, don't try to
+ ;; keep it selected even if the regexp still matches it.
+ ;; See issue #1563. See also `ivy--preselect-index',
+ ;; which this logic roughly mirrors.
+ (not (or
+ (and (integerp preselect)
+ (= ivy--index preselect))
+ (equal current preselect)
+ (and (stringp preselect)
+ (stringp current)
+ (string-match-p preselect current))))
+ ivy--old-cands
+ (cl-position current cands :test #'equal))
+ (funcall func re-str cands)))))
(when (or empty (string= name "^"))
(ivy-set-index
(or (ivy--preselect-index preselect cands)
- [elpa] master updated (64d03d9 -> 33689c1), Oleh Krehel, 2019/07/20
- [elpa] master b4492a3 002/399: counsel.el (counsel-git-checkout-action): Quote branch names, Oleh Krehel, 2019/07/20
- [elpa] master 100bd21 001/399: counsel.el (counsel-M-x): Optionally expand aliases, Oleh Krehel, 2019/07/20
- [elpa] master 08dd58b 003/399: ivy.el (ivy--regex-fuzzy): Don't allow newlines in wildcards, Oleh Krehel, 2019/07/20
- [elpa] master 70ad031 004/399: doc/Changelog.org: Update path to CSS, Oleh Krehel, 2019/07/20
- [elpa] master 596461e 005/399: counsel.el (counsel-grep-use-swiper-p): New defcustom, Oleh Krehel, 2019/07/20
- [elpa] master 6017cc8 006/399: ivy.el (ivy-read): Keep only one action for one key, Oleh Krehel, 2019/07/20
- [elpa] master dc250bd 008/399: counsel.el (counsel-unicode-char): Don't sort every time, Oleh Krehel, 2019/07/20
- [elpa] master b000b0a 007/399: ivy.el (ivy--recompute-index): Speed up,
Oleh Krehel <=
- [elpa] master c2eb4b5 009/399: ivy.el (ivy--kill-buffer-action): Integrate with ivy-switch-buffer-kill, Oleh Krehel, 2019/07/20
- [elpa] master f631d75 013/399: swiper.el (swiper-font-lock-exclude): Add xref--xref-buffer-mode, Oleh Krehel, 2019/07/20
- [elpa] master 3773c26 015/399: swiper.el (swiper--current-window-start): Add docstring, Oleh Krehel, 2019/07/20
- [elpa] master da85d1e 016/399: ivy.el: Require TRAMP earlier, Oleh Krehel, 2019/07/20
- [elpa] master 98b70a7 011/399: swiper.el (swiper--update-input-ivy): Don't recenter when non-graphical, Oleh Krehel, 2019/07/20
- [elpa] master e86cf2e 010/399: counsel.el (counsel-require-program): Change arg meaning, Oleh Krehel, 2019/07/20
- [elpa] master 007d672 012/399: swiper.el (swiper--update-input-ivy): Use display-graphic-p, Oleh Krehel, 2019/07/20
- [elpa] master 686cf5a 014/399: swiper.el (swiper--action): Fix for emacs -nw, Oleh Krehel, 2019/07/20
- [elpa] master b1ac725 017/399: ivy.el (ivy-initial-inputs-alist): Now a defcustom., Oleh Krehel, 2019/07/20
- [elpa] master 43f169b 019/399: swiper.el (swiper-font-lock-ensure-p): Try checking for non prog-mode, Oleh Krehel, 2019/07/20