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

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

[elpa] master 725e19a 170/272: counsel.el (counsel-ag-occur): Add


From: Oleh Krehel
Subject: [elpa] master 725e19a 170/272: counsel.el (counsel-ag-occur): Add
Date: Mon, 25 Apr 2016 10:13:23 +0000

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

    counsel.el (counsel-ag-occur): Add
    
    Re #423
---
 counsel.el |   22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/counsel.el b/counsel.el
index 53da889..2c0c480 100644
--- a/counsel.el
+++ b/counsel.el
@@ -1229,6 +1229,7 @@ command. %S will be replaced by the regex string. The 
default is
   :group 'ivy)
 
 (counsel-set-async-exit-code 'counsel-ag 1 "No matches found")
+(ivy-set-occur 'counsel-ag 'counsel-ag-occur)
 
 (defun counsel-ag-function (string)
   "Grep in the current directory for STRING."
@@ -1258,6 +1259,27 @@ INITIAL-INPUT can be given as the initial minibuffer 
input."
                       (swiper--cleanup))
             :caller 'counsel-ag))
 
+(defun counsel-ag-occur ()
+  "Generate a custom occur buffer for `counsel-ag'."
+  (ivy-occur-grep-mode)
+  (setq default-directory counsel--git-grep-dir)
+  (let* ((regex (counsel-unquote-regex-parens
+                 (setq ivy--old-re
+                       (ivy--regex ivy-text))))
+         (cands (split-string
+                 (shell-command-to-string
+                  (format counsel-ag-base-command (shell-quote-argument 
regex)))
+                 "\n"
+                 t)))
+    ;; Need precise number of header lines for `wgrep' to work.
+    (insert (format "-*- mode:grep; default-directory: %S -*-\n\n\n"
+                    default-directory))
+    (insert (format "%d candidates:\n" (length cands)))
+    (ivy--occur-insert-lines
+     (mapcar
+      (lambda (cand) (concat "./" cand))
+      cands))))
+
 ;;** `counsel-grep'
 (defun counsel-grep-function (string)
   "Grep in the current directory for STRING."



reply via email to

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