summaryrefslogtreecommitdiff
path: root/init/km-projectile.el
diff options
context:
space:
mode:
Diffstat (limited to 'init/km-projectile.el')
-rw-r--r--init/km-projectile.el18
1 files changed, 18 insertions, 0 deletions
diff --git a/init/km-projectile.el b/init/km-projectile.el
index 2ad41b1..98bb837 100644
--- a/init/km-projectile.el
+++ b/init/km-projectile.el
@@ -21,3 +21,21 @@ I have set `projectile-switch-project-action' to
'km/projectile-switch-project-to-file)
(setq projectile-use-git-grep t)
+
+(defun km/projectile-query-and-replace (from to &optional delimited)
+ "Peform query and replace on current project files.
+
+Core logic taken from `dired-do-query-replace-regexp', replacing
+the marked dired file list with the list from
+`projectile-current-project-files'."
+ (interactive
+ (let ((common
+ (query-replace-read-args
+ "Query replace regexp in project files" t t)))
+ (list (nth 0 common) (nth 1 common) (nth 2 common))))
+ (projectile-with-default-dir (projectile-project-root)
+ (tags-query-replace from to delimited
+ '(projectile-current-project-files))))
+
+(define-key projectile-mode-map (kbd "C-c p q")
+ 'km/projectile-query-and-replace)