From 91a79eedf6c15af7868480a478d0a43acff75215 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 6 Sep 2022 17:24:11 -0400 Subject: [PATCH] * 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. --- lisp/jit-lock.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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)) -- 2.39.2