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

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

[elpa] master dc7f5e0 012/184: swiper.el (swiper--isearch-function): Wor


From: Oleh Krehel
Subject: [elpa] master dc7f5e0 012/184: swiper.el (swiper--isearch-function): Works for ivy--regex-ignore-order
Date: Wed, 16 Oct 2019 13:14:40 -0400 (EDT)

branch: master
commit dc7f5e0510e517e721983fc6c29b4ed67fdfba1f
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    swiper.el (swiper--isearch-function): Works for ivy--regex-ignore-order
    
    Fixes #2155
---
 swiper.el | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/swiper.el b/swiper.el
index ea3d145..b103abc 100644
--- a/swiper.el
+++ b/swiper.el
@@ -1338,11 +1338,26 @@ See `ivy-format-functions-alist' for further 
information."
   (let ((re-full (funcall ivy--regex-function str)))
     (unless (equal re-full "")
       (let* ((case-fold-search (ivy--case-fold-p str))
-             (re (ivy-re-to-str re-full))
-             (cands (swiper--isearch-function-1 re swiper--isearch-backward))
-             (idx (swiper--isearch-next-item re cands)))
+             (re
+              (if (stringp re-full)
+                  re-full
+                (regexp-opt (delq nil (mapcar (lambda (x) (and (cdr x) (car 
x))) re-full)))))
+             (cands (swiper--isearch-function-1 re swiper--isearch-backward)))
+        (when (consp re-full)
+          (let (filtered-cands)
+            (dolist (re-cons re-full)
+              (save-excursion
+                (dolist (cand cands)
+                  (goto-char cand)
+                  (beginning-of-line)
+                  (unless (if (re-search-forward (car re-cons) 
(line-end-position) t)
+                              (not (cdr re-cons))
+                            (cdr re-cons))
+                    (push cand filtered-cands))))
+              (setq cands (nreverse filtered-cands))
+              (setq filtered-cands nil))))
         (setq ivy--old-re re)
-        (ivy-set-index idx)
+        (ivy-set-index (swiper--isearch-next-item re cands))
         (setq ivy--old-cands cands)))))
 
 (defcustom swiper-isearch-highlight-delay '(2 0.2)



reply via email to

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