;;; my-grep.el -- Extensions for grep -*- lexical-binding: t -*- ;; Copyright (C) 2023 Free Software Foundation. ;; Author: Yuchen Pei ;; Package-Requires: ((emacs "28.2")) ;; This file is part of dotfiles. ;; dotfiles is free software: you can redistribute it and/or modify it under ;; the terms of the GNU Affero General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; dotfiles is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General ;; Public License for more details. ;; You should have received a copy of the GNU Affero General Public ;; License along with dotfiles. If not, see . ;;; Commentary: ;; Extensions for grep. ;;; Code: (defun my-grep-focus-buffer (buffer) (pop-to-buffer buffer)) (defun my-rgrep-at-directory (dir) (my-with-default-directory dir (let* ((regexp (grep-read-regexp)) (files (grep-read-files regexp))) (rgrep regexp files dir)))) (defun my-grep-docs (project regexp) (interactive (list (completing-read "Docs to grep: " (my-get-list-of-docs)) (grep-read-regexp))) (rgrep regexp (alist-get "docs" grep-files-aliases nil nil 'string=) (concat my-docs-root-dir "/" project))) (provide 'my-grep) ;;; my-grep.el ends here