branch: elpa/meow
commit b859983c7bbce907d6a9d5dfb2c93fa12fb3c9ac
Author: Gabriel Santos <gabrielsantosdeso...@disroot.org>
Commit: GitHub <nore...@github.com>

    Add a shim for grep-edit (#656)
    
    grep-edit is a major mode introduced in Emacs 31 which enables the
    editing of Grep results, by typing 'e' in '*grep*' buffers. 'C-c C-c'
    exits this mode and saves changes.
---
 meow-shims.el | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/meow-shims.el b/meow-shims.el
index 9ebcca6c19..0956da05c2 100644
--- a/meow-shims.el
+++ b/meow-shims.el
@@ -167,6 +167,28 @@ Argument ENABLE non-nil means turn on."
     (advice-remove 'wgrep-finish-edit #'meow--switch-to-motion)
     (advice-remove 'wgrep-save-all-buffers #'meow--switch-to-motion)))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; grep-edit
+
+
+(defvar meow--grep-edit-setup nil
+  "Wheter already setup grep-edit.")
+
+(defvar grep-edit-mode-hook)
+
+(declare-function grep-edit-save-changes "grep")
+
+(defun meow--setup-grep-edit (enable)
+  "Setup grep-edit.
+
+Argument ENABLE non-nil means turn on."
+  (if enable
+      (progn
+        (add-hook 'grep-edit-mode-hook #'meow--switch-to-normal)
+        (advice-add #'grep-edit-save-changes :after #'meow--switch-to-motion))
+    (remove-hook 'grep-edit-mode-hook #'meow--switch-to-normal)
+    (advice-remove 'grep-edit-save-changes #'meow--switch-to-motion)))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; wdired
 
@@ -545,6 +567,7 @@ Argument ENABLE, non-nil means turn on."
   (eval-after-load "edebug" (lambda () (meow--setup-edebug t)))
   (eval-after-load "magit" (lambda () (meow--setup-magit t)))
   (eval-after-load "wgrep" (lambda () (meow--setup-wgrep t)))
+  (eval-after-load "grep" (lambda () (meow--setup-grep-edit t)))
   (eval-after-load "company" (lambda () (meow--setup-company t)))
   (eval-after-load "corfu" (lambda () (meow--setup-corfu t)))
   (eval-after-load "polymode" (lambda () (meow--setup-polymode t)))
@@ -571,6 +594,7 @@ Argument ENABLE, non-nil means turn on."
   (when meow--company-setup (meow--setup-company nil))
   (when meow--corfu-setup (meow--setup-corfu nil))
   (when meow--wgrep-setup (meow--setup-wgrep nil))
+  (when meow--grep-edit-setup (meow--setup-grep-edit nil))
   (when meow--polymode-setup (meow--setup-polymode nil))
   (when meow--cider-setup (meow--setup-cider nil))
   (when meow--which-key-setup (meow--setup-which-key nil))

Reply via email to