Skip to content

Commit

Permalink
Don't clobber match data in timer
Browse files Browse the repository at this point in the history
  • Loading branch information
darkfeline committed Sep 25, 2020
1 parent 806f2a8 commit 4f123b7
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions flycheck.el
Original file line number Diff line number Diff line change
Expand Up @@ -3377,16 +3377,17 @@ or a list of them.)

The syntax check is deferred if FORCE-DEFERRED is non-nil, or if
`flycheck-must-defer-check' returns t."
(when (and flycheck-mode (if (listp condition)
(apply #'flycheck-may-check-automatically
condition)
(flycheck-may-check-automatically condition)))
(flycheck--clear-idle-trigger-timer)
(setq flycheck--idle-trigger-conditions nil)
(if (or force-deferred (flycheck-must-defer-check))
(flycheck-buffer-deferred)
(with-demoted-errors "Error while checking syntax automatically: %S"
(flycheck-buffer)))))
(save-match-data
(when (and flycheck-mode (if (listp condition)
(apply #'flycheck-may-check-automatically
condition)
(flycheck-may-check-automatically condition)))
(flycheck--clear-idle-trigger-timer)
(setq flycheck--idle-trigger-conditions nil)
(if (or force-deferred (flycheck-must-defer-check))
(flycheck-buffer-deferred)
(with-demoted-errors "Error while checking syntax automatically: %S"
(flycheck-buffer))))))

(defun flycheck--clear-idle-trigger-timer ()
"Clear the idle trigger timer."
Expand All @@ -3397,17 +3398,18 @@ The syntax check is deferred if FORCE-DEFERRED is non-nil, or if
(defun flycheck--handle-idle-trigger (buffer)
"Run a syntax check in BUFFER if appropriate.
This function is called by `flycheck--idle-trigger-timer'."
(let ((current-buffer (current-buffer)))
(when (buffer-live-p buffer)
(with-current-buffer buffer
(unless (or flycheck-buffer-switch-check-intermediate-buffers
(eq buffer current-buffer))
(setq flycheck--idle-trigger-conditions
(delq 'idle-buffer-switch
flycheck--idle-trigger-conditions)))
(when flycheck--idle-trigger-conditions
(flycheck-buffer-automatically flycheck--idle-trigger-conditions)
(setq flycheck--idle-trigger-conditions nil))))))
(save-match-data
(let ((current-buffer (current-buffer)))
(when (buffer-live-p buffer)
(with-current-buffer buffer
(unless (or flycheck-buffer-switch-check-intermediate-buffers
(eq buffer current-buffer))
(setq flycheck--idle-trigger-conditions
(delq 'idle-buffer-switch
flycheck--idle-trigger-conditions)))
(when flycheck--idle-trigger-conditions
(flycheck-buffer-automatically flycheck--idle-trigger-conditions)
(setq flycheck--idle-trigger-conditions nil)))))))

(defun flycheck-handle-change (beg end _len)
"Handle a buffer change between BEG and END.
Expand Down

0 comments on commit 4f123b7

Please sign in to comment.