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

Reply via email to