From 9d9516a2d3f6332b6330d2928cd5b568a9518999 Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 16 Apr 2009 18:22:11 +0200 Subject: [PATCH] isearch in all project files --- eproject.el | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/eproject.el b/eproject.el index fc70de1..9c11ef2 100644 --- a/eproject.el +++ b/eproject.el @@ -402,6 +402,7 @@ ) (prj-addhooks) (prj-setup-all) + (prj-isearch-setup) (cd prj-directory) (unless (prj-edit-file prj-curfile) (eproject-dired) @@ -425,6 +426,7 @@ (prj-reset) (prj-config-reset) (prj-setup-all) + (prj-isearch-setup) )) (defun eproject-killbuffers (&optional from-project) @@ -1070,6 +1072,42 @@ do not belong to project files" ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; isearch in all project files + +(defun prj-isearch-function (b wrap) + (let (a d) + (or b (setq b (current-buffer))) + (cond (wrap + (if isearch-forward + (setq a (car prj-files)) + (setq a (car (last prj-files))) + )) + ((setq a (rassoc b prj-files)) + (if isearch-forward + (setq a (prj-next-file prj-files a)) + (setq a (prj-prev-file prj-files a)) + ) + )) + (when a + (if (buffer-live-p (cdr a)) + (setq d (cdr a)) + (setq d (car (prj-find-file a))) + )) + ;; (print `(prj-isearch (wrap . ,wrap) ,b ,d) (get-buffer "*Messages*")) + d + )) + +(defun prj-isearch-setup () + (cond (prj-current + (setq multi-isearch-next-buffer-function 'prj-isearch-function) + (setq multi-isearch-pause 'initial) + (add-hook 'isearch-mode-hook 'multi-isearch-setup) + ) + (t + (remove-hook 'isearch-mode-hook 'multi-isearch-setup) + ))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Initialize (defun prj-startup-delayed () -- 2.11.4.GIT