;;; jit-lock.el --- just-in-time fontification -*- lexical-binding: t -*-
-;; Copyright (C) 1998, 2000-2014 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2015 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Keywords: faces files
(defcustom jit-lock-defer-time nil ;; 0.25
"Idle time after which deferred fontification should take place.
-If nil, fontification is not deferred."
+If nil, fontification is not deferred.
+If 0, then fontification is only deferred while there is input pending."
:group 'jit-lock
:type '(choice (const :tag "never" nil)
(number :tag "seconds")))
This function is added to `fontification-functions' when `jit-lock-mode'
is active."
(when (and jit-lock-mode (not memory-full))
- (if (null jit-lock-defer-timer)
+ (if (not (and jit-lock-defer-timer
+ (or (not (eq jit-lock-defer-time 0))
+ (input-pending-p))))
;; No deferral.
(jit-lock-fontify-now start (+ start jit-lock-chunk-size))
;; Record the buffer for later fontification.
message-log-max
start)
(if (and jit-lock-stealth-load
- (> (car (load-average)) jit-lock-stealth-load))
+ ;; load-average can return nil. The w32 emulation does
+ ;; that during the first few dozens of seconds after
+ ;; startup.
+ (> (or (car (load-average)) 0) jit-lock-stealth-load))
;; Wait a little if load is too high.
(setq delay jit-lock-stealth-time)
(if (buffer-live-p buffer)