branch: master
commit 0572f16bbb6392a07672bc43b33f69f0b2c3e3fd
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
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)