diff options
Diffstat (limited to '.config/emacs/modules/mm-search.el')
| -rw-r--r-- | .config/emacs/modules/mm-search.el | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/.config/emacs/modules/mm-search.el b/.config/emacs/modules/mm-search.el index 9de1eed..9b1c4c4 100644 --- a/.config/emacs/modules/mm-search.el +++ b/.config/emacs/modules/mm-search.el @@ -17,4 +17,33 @@ (lazy-count-prefix-format "(%s/%s) ") (isearch-repeat-on-direction-change t)) -(provide 'mm-search)
\ No newline at end of file +(defun mm--project-find-wrapper (command regexp) + (let (csf) + (cond ((string-suffix-p "/i" regexp) + (setq regexp (string-remove-suffix "/i" regexp) + csf t)) + ((string-suffix-p "/I" regexp) + (setq regexp (string-remove-suffix "/I" regexp) + csf nil)) + (:else + (setq csf case-fold-search))) + (let ((case-fold-search csf)) + (funcall-interactively command regexp)))) + +(defun mm-project-find-regexp (regexp) + "Find all matches for REGEXP in the current project’s roots. +This is a thin wrapper around `project-find-regexp' that supports the +`/i' and `/I' suffixes to enable and disable case-sensitive matching +respectively." + (interactive (list (project--read-regexp))) + (mm--project-find-wrapper #'project-find-regexp regexp)) + +(defun mm-project-or-external-find-regexp (regexp) + "Find all matches for REGEXP in the project roots or external roots. +This is a thin wrapper around `project-or-external-find-regexp' that +supports the `/i' and `/I' suffixes to enable and disable case-sensitive +matching respectively." + (interactive (list (project--read-regexp))) + (mm--project-find-wrapper #'project-or-external-find-regexp regexp)) + +(provide 'mm-search) |