emacs-flymake
emacs-flymake copied to clipboard
func flymake-post-syntax-check, please check "flymake-check-start-time"
Function flymake-post-syntax-check defined like follows:
(defun flymake-post-syntax-check (exit-status command)
(setq flymake-err-info flymake-new-err-info)
(setq flymake-new-err-info nil)
(setq flymake-err-info
(flymake-fix-line-numbers
flymake-err-info 1 (flymake-count-lines)))
(flymake-delete-own-overlays)
(flymake-highlight-err-lines flymake-err-info)
(let (err-count warn-count info-count)
(setq err-count (flymake-get-err-count flymake-err-info "e"))
(setq warn-count (flymake-get-err-count flymake-err-info "w"))
(setq info-count (flymake-get-err-count flymake-err-info "i"))
(flymake-log 2 "%s: %d error(s), %d warning(s), %d info in %.2f second(s)"
(buffer-name) err-count warn-count info-count
(- (flymake-float-time) flymake-check-start-time))
(setq flymake-check-start-time nil)
(if (and (equal 0 err-count) (equal 0 warn-count) (equal 0 info-count))
(if (equal 0 exit-status)
(flymake-report-status "" "") ; PASSED
(if (not flymake-check-was-interrupted)
(flymake-report-fatal-status "CFGERR"
(format "Configuration error has occurred while running %s" command))
(flymake-report-status nil ""))) ; "STOPPED"
(flymake-report-status (format "%d/%d/%d" err-count warn-count info-count) "")))
(run-hooks 'flymake-after-syntax-check-hook))
At snippet: (flymake-log 2 "%s: %d error(s), %d warning(s), %d info in %.2f second(s)" (buffer-name) err-count warn-count info-count (- (flymake-float-time) flymake-check-start-time))
How about check variable flymake-check-start-time
to see whether it is nil
because otherwise expression (- (flymake-float-time) flymake-check-start-time))
will fail with an error.
This behavior costed a emacs dummy (like me) one afternoon to locate it. It would be better to check flymake-check-start-time
whether it equals to nil
, don't you agree?