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

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

[elpa] master 0572f16 123/348: swiper now respects ivy-re-builders-alist


From: Oleh Krehel
Subject: [elpa] master 0572f16 123/348: swiper now respects ivy-re-builders-alist
Date: Sat, 8 Apr 2017 11:03:40 -0400 (EDT)

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

    swiper now respects ivy-re-builders-alist
    
    * swiper.el (swiper--re-builder): Wrap around the customized re-builder.
    
    Fixes #613
    
    Example setting to make swiper fuzzier:
    
    (setq ivy-re-builders-alist
          '((swiper . ivy--regex-fuzzy)
            (t . ivy--regex-plus)))
---
 swiper.el | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/swiper.el b/swiper.el
index 84af6f5..688f440 100644
--- a/swiper.el
+++ b/swiper.el
@@ -399,21 +399,24 @@ When REVERT is non-nil, regenerate the current 
*ivy-occur* buffer."
   "Transform STR into a swiper regex.
 This is the regex used in the minibuffer where candidates have
 line numbers. For the buffer, use `ivy--regex' instead."
-  (let ((re (cond
-              ((equal str "")
-               "")
-              ((equal str "^")
-               (setq ivy--subexps 0)
-               ".")
-              ((string-match "^\\^" str)
-               (setq ivy--old-re "")
-               (let ((re (ivy--regex-plus (substring str 1))))
-                 (if (zerop ivy--subexps)
-                     (prog1 (format "^ ?\\(%s\\)" re)
-                       (setq ivy--subexps 1))
-                   (format "^ %s" re))))
-              (t
-               (ivy--regex-plus str)))))
+  (let* ((re-builder
+          (or (cdr (assoc 'swiper ivy-re-builders-alist))
+              (cdr (assoc t ivy-re-builders-alist))))
+         (re (cond
+               ((equal str "")
+                "")
+               ((equal str "^")
+                (setq ivy--subexps 0)
+                ".")
+               ((string-match "^\\^" str)
+                (setq ivy--old-re "")
+                (let ((re (funcall re-builder (substring str 1))))
+                  (if (zerop ivy--subexps)
+                      (prog1 (format "^ ?\\(%s\\)" re)
+                        (setq ivy--subexps 1))
+                    (format "^ %s" re))))
+               (t
+                (funcall re-builder str)))))
     (cond ((stringp re)
            (replace-regexp-in-string "\t" "    " re))
           ((and (consp re)



reply via email to

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