From 92f99d64dd8bf573f97d17de9a6e62ce300fc956 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 16 Dec 2025 04:33:15 -0500 Subject: [PATCH] fix(vc-gutter): update diff-hl on ESC or switching window/frame The former debouncer wasn't actually doing anything, meaning diff-hl-update was triggered way more often than it needed to be. --- modules/ui/vc-gutter/config.el | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/ui/vc-gutter/config.el b/modules/ui/vc-gutter/config.el index a7f2154c9..e8baded41 100644 --- a/modules/ui/vc-gutter/config.el +++ b/modules/ui/vc-gutter/config.el @@ -107,13 +107,18 @@ Respects `diff-hl-disable-on-remote'." (add-hook! '(doom-escape-hook doom-switch-window-hook doom-switch-frame-hook) :append (defun +vc-gutter-update-h (&rest _) "Return nil to prevent shadowing other `doom-escape-hook' hooks." - (ignore (and (or (bound-and-true-p diff-hl-mode) - (bound-and-true-p diff-hl-dir-mode)) - (or (null +vc-gutter--last-state) - (not (equal +vc-gutter--last-state - (symbol-plist (intern (expand-file-name buffer-file-name) - vc-file-prop-obarray))))) - (diff-hl-update))))) + (and (or (bound-and-true-p diff-hl-mode) + (bound-and-true-p diff-hl-dir-mode)) + (buffer-file-name (buffer-base-buffer)) + (not ; debouncing + (equal +vc-gutter--last-state + (setq +vc-gutter--last-state + (cons (point) + (copy-sequence + (symbol-plist + (intern (expand-file-name buffer-file-name) + vc-file-prop-obarray))))))) + (ignore (diff-hl-update))))) ;; UX: Update diff-hl when magit alters git state. (when (modulep! :tools magit) (add-hook 'magit-post-refresh-hook #'diff-hl-magit-post-refresh))