diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-03-28 11:47:42 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-03-28 11:47:42 +0200 |
commit | 8c836d63d4e72d284ac025fc41876caa7d5b30c8 (patch) | |
tree | 7168aea67097c25ace6b168fc117388da5ba73f3 | |
parent | 0473e47bba5e3e4e47e115057bda3e2986015282 (diff) |
git, grep: Defer grep loading
-rw-r--r-- | lisp/init-git.el | 10 | ||||
-rw-r--r-- | lisp/init-grep.el | 4 | ||||
-rw-r--r-- | lisp/init-project.el | 11 |
3 files changed, 12 insertions, 13 deletions
diff --git a/lisp/init-git.el b/lisp/init-git.el index 996119f..aa0dba6 100644 --- a/lisp/init-git.el +++ b/lisp/init-git.el @@ -16,6 +16,11 @@ If NOSELECT is non-nil, do not select the window." (interactive) (mpolden/magit-visit-file-other-window t)) +(defun mpolden/vc-git-grep () + "Run git grep interactively in the current VC tree." + (interactive) + (vc-git-grep (grep-read-regexp) "" (vc-root-dir))) + (use-package magit :ensure t :init @@ -56,6 +61,11 @@ If NOSELECT is non-nil, do not select the window." :init (setq smerge-command-prefix (kbd "C-c x"))) +(use-package vc-git + :commands vc-git-grep + :bind (;; C-c g runs git grep in current vc tree + ("C-c g" . mpolden/vc-git-grep))) + ;; follow symlinks to files under version control (setq vc-follow-symlinks t) diff --git a/lisp/init-grep.el b/lisp/init-grep.el index f3d9620..4850b73 100644 --- a/lisp/init-grep.el +++ b/lisp/init-grep.el @@ -21,10 +21,8 @@ If NOSELECT is non-nil, do not select the window." (setq-local truncate-lines nil)) (use-package grep - :demand t ;; this cannot lazy load as bindings are inside a mode map - + :commands grep-read-regexp :hook (grep-mode . mpolden/grep-mode-buffer-local-variables) - :bind (:map grep-mode-map ;; make C-o and o behave as in dired ("o" . mpolden/grep-visit-buffer-other-window) diff --git a/lisp/init-project.el b/lisp/init-project.el index 5ce518a..28c7e66 100644 --- a/lisp/init-project.el +++ b/lisp/init-project.el @@ -2,13 +2,6 @@ ;;; Commentary: ;;; Code: -(defun mpolden/project-git-grep () - "Run git grep interactively in the current project." - (interactive) - (let ((search-regexp (grep-read-regexp)) - (dir (project-root (project-current t)))) - (vc-git-grep search-regexp "" dir))) - (use-package project :ensure t :init @@ -16,15 +9,13 @@ (setq project-switch-commands '((project-find-file "Find file") (project-dired "Dired") (project-eshell "Eshell") - (mpolden/project-git-grep "Grep" ?g) + (mpolden/vc-git-grep "Grep" ?g) (magit-project-status "Magit" ?m))) :bind (;; C-x f finds file in project ("C-x f" . project-find-file) ;; C-c p switches project ("C-c p" . project-switch-project) - ;; C-c g runs git grep in project - ("C-c g" . mpolden/project-git-grep) ;; C-c m compiles project ("C-c m" . project-compile))) |