mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-03 12:27:26 -05:00
tools/magit: update vc on +magit/quit
Instead of magit-post-refresh-hook, which fires much more frequently. Updating vc across all buffers is expensive, so let's only do it when we quit magit. Warning: this may make quitting magit expensive when you have many buffers open. Still searching for a better solution.
This commit is contained in:
@ -50,9 +50,16 @@
|
|||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +magit/quit (&optional _kill-buffer)
|
(defun +magit/quit (&optional _kill-buffer)
|
||||||
"Clean up magit buffers after quitting `magit-status'."
|
"Clean up magit buffers after quitting `magit-status' and refresh version
|
||||||
|
control in buffers."
|
||||||
(interactive)
|
(interactive)
|
||||||
(mapc #'+magit--kill-buffer (magit-mode-get-buffers)))
|
(mapc #'+magit--kill-buffer (magit-mode-get-buffers))
|
||||||
|
(dolist (buffer (buffer-list))
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(when (fboundp 'vc-refresh-state)
|
||||||
|
(vc-refresh-state))
|
||||||
|
(when (fboundp '+version-control|update-git-gutter)
|
||||||
|
(+version-control|update-git-gutter)))))
|
||||||
|
|
||||||
(defun +magit--kill-buffer (buf)
|
(defun +magit--kill-buffer (buf)
|
||||||
"TODO"
|
"TODO"
|
||||||
|
@ -47,14 +47,7 @@ available.")
|
|||||||
|
|
||||||
;; Don't replace the leader key
|
;; Don't replace the leader key
|
||||||
;; FIXME remove me when general.el is integrated
|
;; FIXME remove me when general.el is integrated
|
||||||
(define-key magit-diff-mode-map (kbd doom-leader-key) nil)
|
(define-key magit-diff-mode-map (kbd doom-leader-key) nil))
|
||||||
|
|
||||||
(defun +magit|update-vc ()
|
|
||||||
"Update vc in all verson-controlled buffers when magit refreshes."
|
|
||||||
(dolist (buf (buffer-list))
|
|
||||||
(with-current-buffer buf
|
|
||||||
(vc-refresh-state))))
|
|
||||||
(add-hook 'magit-post-refresh-hook #'+magit|update-vc))
|
|
||||||
|
|
||||||
|
|
||||||
(def-package! magit-todos
|
(def-package! magit-todos
|
||||||
|
Reference in New Issue
Block a user