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:
parent
d9a179d071
commit
fcd1e913c5
2 changed files with 10 additions and 10 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue