[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 56a1f7d 386/399: Add counsel-grep-backward and counsel-gre
From: |
Oleh Krehel |
Subject: |
[elpa] master 56a1f7d 386/399: Add counsel-grep-backward and counsel-grep-or-swiper-backward commands |
Date: |
Sat, 20 Jul 2019 14:58:05 -0400 (EDT) |
branch: master
commit 56a1f7d4c369f9d9b6f88e84aa5a55d842d3a165
Author: Joel Rosdahl <address@hidden>
Commit: Oleh Krehel <address@hidden>
Add counsel-grep-backward and counsel-grep-or-swiper-backward commands
Fixes #2132
---
counsel.el | 21 +++++++++++++++++++++
ivy.el | 13 +++++++++++++
2 files changed, 34 insertions(+)
diff --git a/counsel.el b/counsel.el
index 16a08b4..feb3669 100644
--- a/counsel.el
+++ b/counsel.el
@@ -2978,6 +2978,16 @@ When non-nil, INITIAL-INPUT is the initial search
pattern."
(unless res
(goto-char init-point)))))
+;;;###autoload
+(defun counsel-grep-backward (&optional initial-input)
+ "Grep for a string in the file visited by the current buffer going
+backward similar to `swiper-backward'. When non-nil, INITIAL-INPUT is
+the initial search pattern."
+ (interactive)
+ (let ((ivy-index-functions-alist
+ '((counsel-grep . ivy-recompute-index-swiper-async-backward))))
+ (counsel-grep initial-input)))
+
;;** `counsel-grep-or-swiper'
(defcustom counsel-grep-swiper-limit 300000
"Buffer size threshold for `counsel-grep-or-swiper'.
@@ -3014,6 +3024,17 @@ When non-nil, INITIAL-INPUT is the initial search
pattern."
(save-buffer))
(counsel-grep initial-input)))
+;;** `counsel-grep-or-swiper-backward'
+;;;###autoload
+(defun counsel-grep-or-swiper-backward (&optional initial-input)
+ "Call `swiper-backward' for small buffers and `counsel-grep-backward' for
+large ones. When non-nil, INITIAL-INPUT is the initial search pattern."
+ (interactive)
+ (let ((ivy-index-functions-alist
+ '((swiper . ivy-recompute-index-swiper-backward)
+ (counsel-grep . ivy-recompute-index-swiper-async-backward))))
+ (counsel-grep-or-swiper initial-input)))
+
;;** `counsel-recoll'
(defun counsel-recoll-function (str)
"Run recoll for STR."
diff --git a/ivy.el b/ivy.el
index 22ff77c..21c317c 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3222,6 +3222,7 @@ CANDIDATES are assumed to be static."
ivy-index-functions-alist))
'(ivy-recompute-index-swiper
ivy-recompute-index-swiper-async
+ ivy-recompute-index-swiper-async-backward
ivy-recompute-index-swiper-backward))
(progn
(ivy--recompute-index name re-str cands)
@@ -3479,6 +3480,18 @@ CANDS are the current candidates."
(or idx 0))
ivy--index))))
+(defun ivy-recompute-index-swiper-async-backward (re-str cands)
+ "Recompute index of selected candidate when using `swiper-backward'
+asynchronously. CANDS are the current candidates."
+ (if (= (length cands) 0)
+ 0
+ (let ((idx (ivy-recompute-index-swiper-async re-str cands)))
+ (if
+ (<= (string-to-number (nth idx cands))
+ (with-ivy-window (line-number-at-pos)))
+ idx
+ (- idx 1)))))
+
(defun ivy-recompute-index-zero (_re-str _cands)
"Recompute index of selected candidate.
This function serves as a fallback when nothing else is available."
- [elpa] master 3380b6f 382/399: swiper.el (swiper--avy-goto): Works for swiper-isearch, (continued)
- [elpa] master 3380b6f 382/399: swiper.el (swiper--avy-goto): Works for swiper-isearch, Oleh Krehel, 2019/07/20
- [elpa] master bd53ada 379/399: counsel.el (counsel-async-split-string-re-alist): Extract, Oleh Krehel, 2019/07/20
- [elpa] master 0703a70 380/399: counsel.el (counsel-async-ignore-re-alist): Extract, Oleh Krehel, 2019/07/20
- [elpa] master 59603df 383/399: swiper.el (swiper--avy-goto): Fix for a small amount of cands, Oleh Krehel, 2019/07/20
- [elpa] master 5f030d5 381/399: counsel.el (counsel--git-log-format-function): Add, Oleh Krehel, 2019/07/20
- [elpa] master c4c6068 384/399: doc/ivy.org: Fix RET -> C-j, Oleh Krehel, 2019/07/20
- [elpa] master ee5dacf 385/399: Add swiper-backward command, Oleh Krehel, 2019/07/20
- [elpa] master 3c6790f 387/399: ivy.el (ivy-immediate-done): Improve make-directory, Oleh Krehel, 2019/07/20
- [elpa] master 6e50ab6 391/399: ivy-test.el (swiper-isearch-backward): Goto old match on DEL, Oleh Krehel, 2019/07/20
- [elpa] master 714911b 389/399: ivy.el (ivy--sort): Higher priority for ivy-sort-matches-functions-alist, Oleh Krehel, 2019/07/20
- [elpa] master 56a1f7d 386/399: Add counsel-grep-backward and counsel-grep-or-swiper-backward commands,
Oleh Krehel <=
- [elpa] master 79de883 388/399: ivy.el (ivy--sort): Simplify, Oleh Krehel, 2019/07/20
- [elpa] master f5508e5 390/399: swiper.el (swiper-isearch-backward): Add backward search, Oleh Krehel, 2019/07/20
- [elpa] master af0799a 393/399: counsel.el (counsel-git-log-show-commit-action): Fix match end., Oleh Krehel, 2019/07/20
- [elpa] master 54d1b19 392/399: swiper.el (swiper-isearch-action): Use swiper-action-recenter, Oleh Krehel, 2019/07/20
- [elpa] master 16486d5 394/399: ivy.el (ivy--shorter-matches-first): Add and use for ivy-completion-in-region, Oleh Krehel, 2019/07/20
- [elpa] master f99f13a 396/399: Increase swiper-isearch cursor overlay priority, Oleh Krehel, 2019/07/20
- [elpa] master b5db0aa 397/399: ivy.el (ivy--insert-prompt): Adjust ivy-use-selectable-prompt, Oleh Krehel, 2019/07/20
- [elpa] master 74095a2 395/399: ivy-test.el (swiper-isearch-backward): Test match at point, Oleh Krehel, 2019/07/20
- [elpa] master 85d1e2e 398/399: doc/Changelog.org: Release 0.12.0, Oleh Krehel, 2019/07/20
- [elpa] master 33689c1 399/399: Merge commit '85d1e2e779ca92e6ef8e47d08f866b13d4d87aee' from ivy, Oleh Krehel, 2019/07/20