tools/magit: cleanup magit concurrently

A quick attempt to make +magit/quit faster.
This commit is contained in:
Henrik Lissner 2019-02-12 15:31:20 -05:00
parent 0e8af0e6d2
commit ba0ccc1d34
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -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"