ag.el
changeset 1502 72c63cea35d3
parent 1501 636e49ed6d27
child 1515 a28c181c1412
equal deleted inserted replaced
1501:636e49ed6d27 1502:72c63cea35d3
    93         (if backend
    93         (if backend
    94             (vc-call-backend backend 'root default-directory)
    94             (vc-call-backend backend 'root default-directory)
    95           default-directory))
    95           default-directory))
    96     (error default-directory)))
    96     (error default-directory)))
    97 
    97 
       
    98 (defun my/ag-read-regex ()
       
    99   (let* ( (def (when my/ag-regex-history (car my/ag-regex-history)))
       
   100           (part (when def (if (< (length def) 20)
       
   101                               def
       
   102                             (concat (substring def 0 20) "...")))) )
       
   103     (read-string
       
   104      (if part (format "Regex [%s]: " part) "Regex: ")
       
   105      ""  'my/ag-regex-history  def  t)))
       
   106 
    98 ;;;###autoload
   107 ;;;###autoload
    99 (defun my/ag (regex)
   108 (defun my/ag (regex)
   100   (interactive
   109   "Search in 'ag' recursively from VCS root directory and fall to
   101    (let* ( (def (when my/ag-regex-history (car my/ag-regex-history)))
   110 current directory if VCS root is not defined."
   102            (part (when def (if (< (length def) 20)
   111   (interactive (list (my/ag-read-regex)))
   103                                def
       
   104                              (concat (substring def 0 20) "...")))) )
       
   105      (list (read-string
       
   106             (if part (format "Regex [%s]: " part) "Regex: ")
       
   107             ""  'my/ag-regex-history  def  t))))
       
   108   (my/ag-setup-buffer (if current-prefix-arg default-directory (my/ag-project-root)))
   112   (my/ag-setup-buffer (if current-prefix-arg default-directory (my/ag-project-root)))
   109   (my/ag-run regex))
   113   (my/ag-run regex))
       
   114 
       
   115 ;;;###autoload
       
   116 (defun my/ag-default-directory (regex)
       
   117   "Search in 'ag' recursively from current directory."
       
   118   (interactive (list (my/ag-read-regex)))
       
   119   (my/ag-setup-buffer default-directory)
       
   120   (my/ag-run regex))
       
   121 
   110 
   122 
   111 (provide 'ag)
   123 (provide 'ag)
   112 
   124 
   113 ;;; ag.el ends here
   125 ;;; ag.el ends here