summaryrefslogtreecommitdiff
path: root/lisp/vc-dir.el
diff options
context:
space:
mode:
authorDan Nicolaescu <dann@ics.uci.edu>2008-07-24 01:57:24 +0000
committerDan Nicolaescu <dann@ics.uci.edu>2008-07-24 01:57:24 +0000
commit834d998e3998448bf08b7609c6814fa8daf8d280 (patch)
treeb7b91fc59ffeae9c43149a12d3d4c27b3126a704 /lisp/vc-dir.el
parentd96e6e5cd3a0c634428370c642dabb2c5bcb56b0 (diff)
(vc-dir-search): New function.
(vc-dir-mode-map, vc-dir-menu-map): Bind it.
Diffstat (limited to 'lisp/vc-dir.el')
-rw-r--r--lisp/vc-dir.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/vc-dir.el b/lisp/vc-dir.el
index 755101dd5e..7041d5765b 100644
--- a/lisp/vc-dir.el
+++ b/lisp/vc-dir.el
@@ -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