From 390870496073d3cc9fb6a85413b21338d0f9ecdb Mon Sep 17 00:00:00 2001 From: Huan Nguyen Date: Tue, 3 Oct 2023 15:17:55 +0200 Subject: [PATCH] Add `treesit-font-lock-simple-rules' function. * lisp/treesit.el (treesit-font-lock-simple-rules): Add a function which saves the user from typing :language for every query-spec. --- lisp/treesit.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lisp/treesit.el b/lisp/treesit.el index a9761db..3bcca9d 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -837,6 +837,17 @@ treesit-font-lock-rules `("Unexpected value" ,token)))))) (nreverse result)))) +(defun treesit-font-lock-simple-rules (language &rest rules) + "Wrapper around `treesit-font-lock-rules'. +It saves the user from typing :language `LANGUAGE' for every `RULES'." + (apply #'treesit-font-lock-rules + (seq-reduce + (lambda (query-specs keyword) + (if (eq :feature keyword) + (append query-specs `(:language ,language ,keyword)) + (append query-specs `(,keyword)))) + rules '()))) + ;; `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 -- 2.41.0