From: Yuan Fu Date: Mon, 31 Oct 2022 03:56:21 +0000 (-0700) Subject: Add tresit--font-lock-verbose X-Git-Tag: emacs-29.0.90~1746 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=377ee8158b2fab3efccb4e9b262e6129b51e28f8;p=emacs.git Add tresit--font-lock-verbose * lisp/treesit.el (tresit--font-lock-verbose): New variable. (treesit-font-lock-fontify-region): Take tresit--font-lock-verbose into account. Return jit-lock-bounds. --- diff --git a/lisp/treesit.el b/lisp/treesit.el index 4bba2218327..48441275092 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -572,6 +572,13 @@ ignored. `("Unexpected value" ,token)))))) (nreverse result)))) +;; `font-lock-fontify-region-function' has the LOUDLY argument, but +;; `jit-lock-functions' doesn't pass that argument. So even if we set +;; `font-lock-verbose' to t, if jit-lock is enabled (and it's almost +;; always is), we don't get debug messages. So we add our own. +(defvar tresit--font-lock-verbose nil + "If non-nil, print debug messages when fontifying.") + (defun treesit-font-lock-recompute-features () "Enable/disable font-lock settings according to decoration level. Set the ENABLE flag for each setting in @@ -597,6 +604,8 @@ Set the ENABLE flag for each setting in (start end &optional loudly) "Fontify the region between START and END. If LOUDLY is non-nil, display some debugging information." + (when (or loudly tresit--font-lock-verbose) + (message "Fontifying region: %s-%s" start end)) (treesit-update-ranges start end) (font-lock-unfontify-region start end) (dolist (setting treesit-font-lock-settings) @@ -644,13 +653,14 @@ If LOUDLY is non-nil, display some debugging information." ;; Don't raise an error if FACE is neither a face nor ;; a function. This is to allow intermediate capture ;; names used for #match and #eq. - (when loudly + (when (or loudly tresit--font-lock-verbose) (message "Fontifying text from %d to %d, Face: %s Language: %s" start end face language))))))))) ;; Call regexp font-lock after tree-sitter, as it is usually used ;; for custom fontification. (let ((font-lock-unfontify-region-function #'ignore)) - (funcall #'font-lock-default-fontify-region start end loudly))) + (funcall #'font-lock-default-fontify-region start end loudly)) + `(jit-lock-bounds ,start . ,end)) (defun treesit-font-lock-enable () "Enable tree-sitter font-locking for the current buffer."