tools/magit: cleanup magit concurrently
A quick attempt to make +magit/quit faster.
This commit is contained in:
parent
0e8af0e6d2
commit
ba0ccc1d34
1 changed files with 14 additions and 6 deletions
|
@ -48,6 +48,13 @@
|
||||||
;;
|
;;
|
||||||
;; Commands
|
;; Commands
|
||||||
|
|
||||||
|
(defun +magit--refresh-vc-in-buffer (buffer)
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(when (fboundp 'vc-refresh-state)
|
||||||
|
(vc-refresh-state))
|
||||||
|
(when (fboundp '+version-control|update-git-gutter)
|
||||||
|
(+version-control|update-git-gutter))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +magit/quit (&optional _kill-buffer)
|
(defun +magit/quit (&optional _kill-buffer)
|
||||||
"Clean up magit buffers after quitting `magit-status' and refresh version
|
"Clean up magit buffers after quitting `magit-status' and refresh version
|
||||||
|
@ -61,12 +68,13 @@ control in buffers."
|
||||||
(eq major-mode 'magit-status-mode)))
|
(eq major-mode 'magit-status-mode)))
|
||||||
(window-list))))
|
(window-list))))
|
||||||
(mapc #'+magit--kill-buffer (magit-mode-get-buffers))
|
(mapc #'+magit--kill-buffer (magit-mode-get-buffers))
|
||||||
(dolist (buffer (buffer-list))
|
(let ((buffers (doom-buffer-list)))
|
||||||
(with-current-buffer buffer
|
(if (not (fboundp 'make-thread))
|
||||||
(when (fboundp 'vc-refresh-state)
|
(mapc #'+magit--refresh-vc-in-buffer buffers)
|
||||||
(vc-refresh-state))
|
(mapc #'+magit--refresh-vc-in-buffer (doom-visible-buffers buffers))
|
||||||
(when (fboundp '+version-control|update-git-gutter)
|
;; TODO Partition buffer list
|
||||||
(+version-control|update-git-gutter))))))
|
(dolist (buffer (doom-buried-buffers buffers))
|
||||||
|
(make-thread (lambda () (+magit--refresh-vc-in-buffer buffer))))))))
|
||||||
|
|
||||||
(defun +magit--kill-buffer (buf)
|
(defun +magit--kill-buffer (buf)
|
||||||
"TODO"
|
"TODO"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue