]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-dir-search): New function.
authorDan Nicolaescu <dann@ics.uci.edu>
Thu, 24 Jul 2008 01:57:24 +0000 (01:57 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Thu, 24 Jul 2008 01:57:24 +0000 (01:57 +0000)
(vc-dir-mode-map, vc-dir-menu-map): Bind it.

lisp/ChangeLog
lisp/vc-dir.el

index 2b2952b59f8447d7c26ab70e93160d59fcceb7ef..1fe698ddcb163d24093173e5cee650102a3e3709 100644 (file)
@@ -1,3 +1,8 @@
+2008-07-24  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * vc-dir.el (vc-dir-search): New function.
+       (vc-dir-mode-map, vc-dir-menu-map): Bind it.
+
 2008-07-23  Juri Linkov  <juri@jurta.org>
 
        * isearch-multi.el: Remove file to avoid dos file name clashes
index 755101dd5eec1c8376bc35a75f09aa5b77fcc418..7041d5765b589c453b8553363804255b57700d7c 100644 (file)
@@ -159,6 +159,9 @@ See `run-hooks'."
     (define-key map [qr]
       '(menu-item "Query Replace in Files" vc-dir-query-replace-regexp
                  :help "Replace a string in the marked files"))
+    (define-key map [se]
+      '(menu-item "Search Files" vc-dir-search
+                 :help "Search a regexp in the marked files"))
     (define-key map [open-other]
       '(menu-item "Open in other window" vc-dir-find-file-other-window
                  :help "Find the file on the current line, in another window"))
@@ -250,6 +253,7 @@ See `run-hooks'."
     (define-key map [down-mouse-3] 'vc-dir-menu)
     (define-key map [mouse-2] 'vc-dir-toggle-mark)
     (define-key map "x" 'vc-dir-hide-up-to-date)
+    (define-key map "S" 'vc-dir-search) ;; FIXME: Maybe use A like dired?
     (define-key map "Q" 'vc-dir-query-replace-regexp)
 
     ;; Hook up the menu.
@@ -679,8 +683,17 @@ that share the same state."
   (interactive)
   (find-file-other-window (vc-dir-current-file)))
 
+(defun vc-dir-search (regexp)
+  "Search through all marked files for a match for REGEXP.
+For marked directories, use the files displayed from those directories.
+Stops when a match is found.
+To continue searching for next match, use command \\[tags-loop-continue]."
+  (interactive "sSearch marked files (regexp): ")
+  (tags-search regexp '(mapcar 'car (vc-dir-marked-only-files-and-states))))
+
 (defun vc-dir-query-replace-regexp (from to &optional delimited)
   "Do `query-replace-regexp' of FROM with TO, on all marked files.
+For marked directories, use the files displayed from those directories.
 If a directory is marked, then use the files displayed for that directory.
 Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
 If you exit (\\[keyboard-quit], RET or q), you can resume the query replace