diff options
Diffstat (limited to 'lisp/jit-lock.el')
-rw-r--r-- | lisp/jit-lock.el | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index 97df89a12d9..74bfa3ab078 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -125,7 +125,8 @@ The value of this variable is used when JIT Lock mode is turned on." (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"))) @@ -318,10 +319,6 @@ Only applies to the current buffer." (remove-hook 'jit-lock-functions fun t) (unless jit-lock-functions (jit-lock-mode nil))) -;; This function is used to prevent font-lock-fontify-buffer from -;; fontifying eagerly the whole buffer. This is important for -;; things like CWarn mode which adds/removes a few keywords and -;; does a refontify (which takes ages on large files). (defun jit-lock-refontify (&optional beg end) "Force refontification of the region BEG..END (default whole buffer)." (with-buffer-prepared-for-jit-lock @@ -337,7 +334,9 @@ Only applies to the current buffer." 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. |