]> git.eshelyaron.com Git - emacs.git/commitdiff
Make the Git stash commands available in vc-dir Git buffers
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 6 Dec 2021 05:41:25 +0000 (06:41 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 6 Dec 2021 05:41:25 +0000 (06:41 +0100)
* lisp/vc/vc-dir.el (vc-dir): Call the backend-specific minor mode
if it exists.
* lisp/vc/vc-git.el (vc-dir-git-mode-map): New map.
(vc-dir-git-mode): New minor mode.

lisp/vc/vc-dir.el
lisp/vc/vc-git.el

index 8165d5e09f1f5e071e2bdad2ef4f2e70b75ddf75..32e492171d3a8bd1a79bd4694f5f93c38ea97ba7 100644 (file)
@@ -1427,7 +1427,12 @@ These are the commands available for use in the file status buffer:
       (vc-dir-refresh)
     ;; FIXME: find a better way to pass the backend to `vc-dir-mode'.
     (let ((use-vc-backend backend))
-      (vc-dir-mode))))
+      (vc-dir-mode)
+      ;; Activate the backend-specific minor mode, if any.
+      (when-let ((minor-mode
+                  (intern-soft (format "vc-dir-%s-mode"
+                                       (downcase (symbol-name backend))))))
+        (funcall minor-mode 1)))))
 
 (defun vc-default-dir-extra-headers (_backend _dir)
   ;; Be loud by default to remind people to add code to display
index 08282647eb0d3d335cd1d48061688088ec685e68..3ceed365ee052486d4b8d4cc7d9732609960d899 100644 (file)
@@ -1872,6 +1872,16 @@ Returns nil if not possible."
                                                       (1- (point-max)))))))
          (and name (not (string= name "undefined")) name))))
 
+(defvar-keymap vc-dir-git-mode-map
+  "z c" #'vc-git-stash
+  "z s" #'vc-git-stash-snapshot)
+
+(define-minor-mode vc-dir-git-mode
+  "A minor mode for git-specific commands in `vc-dir-mode' buffers.
+Also note that there are git stash commands available in the
+\"Stash\" section at the head of the buffer."
+  :lighter " Git")
+
 (provide 'vc-git)
 
 ;;; vc-git.el ends here