From: Stefan Monnier Date: Tue, 6 Sep 2022 21:24:11 +0000 (-0400) Subject: * lisp/jit-lock.el (jit-lock-function): Don't fontify invisible text X-Git-Tag: emacs-29.0.90~1856^2~689 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=91a79eedf6c15af7868480a478d0a43acff75215;p=emacs.git * lisp/jit-lock.el (jit-lock-function): Don't fontify invisible text See bug#57447. This can speed up fontification significantly when using things like outline-mode. --- diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index 9543253cf24..e28d6ec9247 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -382,7 +382,11 @@ is active." (or (not (eq jit-lock-defer-time 0)) (input-pending-p)))) ;; No deferral. - (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) + (let* ((cend (min (point-max) (+ start jit-lock-chunk-size))) + (vend (next-single-property-change start 'invisible nil cend))) + ;; FIXME: Presumably if we're called it means `start' is + ;; not at EOB (nor invisible) and hence (> vend start). + (jit-lock-fontify-now start vend)) ;; Record the buffer for later fontification. (unless (memq (current-buffer) jit-lock-defer-buffers) (push (current-buffer) jit-lock-defer-buffers))