branch: elpa/flycheck
commit 4774c401a9c35b817722b2aa0a2d8390c38588e2
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>
Use safe wrapper for after-revert-hook handler
Replace direct `flycheck-buffer` call with `flycheck-handle-revert`
which checks whether `flycheck-mode` is still active before starting
a syntax check. This is needed because `revert-buffer` may kill local
variables (including the mode) via `kill-all-local-variables`.
---
flycheck.el | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/flycheck.el b/flycheck.el
index d307ca403b..135c2ad14a 100644
--- a/flycheck.el
+++ b/flycheck.el
@@ -2971,7 +2971,7 @@ Slots:
;; Handle events that may start automatic syntax checks
(after-save-hook . flycheck-handle-save)
(after-change-functions . flycheck-handle-change)
- (after-revert-hook . flycheck-buffer)
+ (after-revert-hook . flycheck-handle-revert)
;; Handle events that may trigger pending deferred checks
(window-configuration-change-hook . flycheck-perform-deferred-syntax-check)
(post-command-hook . flycheck-perform-deferred-syntax-check)
@@ -3566,6 +3566,14 @@ If a buffer switch actually happened, schedule a syntax
check."
"Handle a save of the buffer."
(flycheck-buffer-automatically 'save))
+(defun flycheck-handle-revert ()
+ "Handle a buffer revert.
+Start a syntax check after the buffer has been reverted, but only
+if `flycheck-mode' is still active (it may have been killed by
+`revert-buffer' via `kill-all-local-variables')."
+ (when flycheck-mode
+ (flycheck-buffer)))
+
;;; Deferred syntax checking
(defvar-local flycheck-deferred-syntax-check nil