mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-03 12:27:26 -05:00
feat(magit): introduce +magit-auto-revert option
Provides more control over our auto-reverting feature, and changes its behavior to only target non-remote buffers by default, because reverting remote buffers could be tremendously slow. This could be later improved to treat TRAMP buffers with local methods (like sudo) as local buffers. Fix: #8354
This commit is contained in:
@ -98,6 +98,17 @@ window that already exists in that direction. It will split otherwise."
|
||||
|
||||
(defvar +magit--stale-p nil)
|
||||
|
||||
(defun +magit--revertable-buffer-p (buffer)
|
||||
(when (buffer-live-p buffer)
|
||||
(pcase +magit-auto-revert
|
||||
(`t t)
|
||||
(`local
|
||||
(not (file-remote-p
|
||||
(or (buffer-file-name buffer)
|
||||
(buffer-local-value 'default-directory buffer)))))
|
||||
((pred functionp)
|
||||
(funcall +magit-auto-revert buffer)))))
|
||||
|
||||
(defun +magit--revert-buffer (buffer)
|
||||
(with-current-buffer buffer
|
||||
(kill-local-variable '+magit--stale-p)
|
||||
@ -116,7 +127,7 @@ Stale buffers are reverted when they are switched to, assuming they haven't been
|
||||
modified."
|
||||
(let ((visible-buffers (doom-visible-buffers nil t)))
|
||||
(dolist (buffer (buffer-list))
|
||||
(when (buffer-live-p buffer)
|
||||
(when (+magit--revertable-buffer-p buffer)
|
||||
(if (memq buffer visible-buffers)
|
||||
(progn
|
||||
(+magit--revert-buffer buffer)
|
||||
|
Reference in New Issue
Block a user