Prompt for extra ag options on C-u C-u.
--- a/ag.el Sun May 13 00:29:14 2018 +0300
+++ b/ag.el Sun May 13 00:30:35 2018 +0300
@@ -80,13 +80,17 @@
(my-ag-mode))
(display-buffer my-ag/buffer))
-(defun my-ag/run (regex)
- (let ( (default-directory (buffer-local-value 'default-directory my-ag/buffer)) )
+(defun my-ag/run (regex &optional args)
+ (let ((default-directory (buffer-local-value 'default-directory my-ag/buffer))
+ (cmd (list "ag" "--group" "--nocolor")))
+ (when args
+ (nconc cmd (split-string args)))
+ (nconc cmd (list "--" regex))
(make-process
:name "ag"
:buffer my-ag/buffer
:filter 'my-ag/filter
- :command (list "ag" "--group" "--nocolor" regex))))
+ :command cmd)))
(defun my-ag/project-root ()
(condition-case err
@@ -106,13 +110,26 @@
(if part (format "Regex [%s]: " part) "Regex: ")
"" 'my-ag/regex-history def t)))
+(defvar my-ag/extra-history nil)
+
+(defun my-ag/read-extra ()
+ (let* ( (def (when my-ag/extra-history (car my-ag/extra-history)))
+ (part (when def (if (< (length def) 20)
+ def
+ (concat (substring def 0 20) "...")))) )
+ (read-string
+ (if part (format "Extra args [%s]: " part) "Extra args: ")
+ "" 'my-ag/extra-history def t)))
+
;;;###autoload
-(defun my-ag (regex)
+(defun my-ag (regex &optional args)
"Search in 'ag' recursively from VCS root directory and fall to
current directory if VCS root is not defined."
- (interactive (list (my-ag/read-regex)))
+ (interactive (if (equal current-prefix-arg '(16))
+ (list (my-ag/read-regex) (my-ag/read-extra))
+ (list (my-ag/read-regex))))
(my-ag/setup-buffer (if current-prefix-arg default-directory (my-ag/project-root)))
- (my-ag/run regex))
+ (my-ag/run regex args))
;;;###autoload
(defun my-ag-default-directory (regex)