diff options
author | Theodor Thornhill <theo@thornhill.no> | 2023-01-28 13:57:01 +0100 |
---|---|---|
committer | Theodor Thornhill <theo@thornhill.no> | 2023-01-28 19:40:04 +0100 |
commit | 1de6ebf2878485a0ef6b778df7d6a14d5b22a01c (patch) | |
tree | 45243c48a056b4a8a5634b422cdde00e453f3d30 | |
parent | 6e50ee8bbb50ef86707cefed8ebb20f027156843 (diff) | |
download | emacs-1de6ebf2878485a0ef6b778df7d6a14d5b22a01c.tar.gz emacs-1de6ebf2878485a0ef6b778df7d6a14d5b22a01c.tar.bz2 emacs-1de6ebf2878485a0ef6b778df7d6a14d5b22a01c.zip |
Make treesit-font-lock-level a defcustom
* lisp/treesit.el (treesit--font-lock-level-setter): Setter for the
new defcustom.
(treesit-font-lock-level): Turn it into a defcustom.
-rw-r--r-- | lisp/treesit.el | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/lisp/treesit.el b/lisp/treesit.el index 4c9bdfc0bd4..363692eabdf 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -554,7 +554,25 @@ omitted, default END to BEG." "Generic tree-sitter font-lock error" 'treesit-error) -(defvar-local treesit-font-lock-level 3 +(defun treesit--font-lock-level-setter (sym val) + "Custom setter for `treesit-font-lock-level'." + (set-default sym val) + (named-let loop ((res nil) + (buffers (buffer-list))) + (if (null buffers) + (mapc (lambda (b) + (with-current-buffer b + (setq-local treesit-font-lock-level val) + (treesit-font-lock-recompute-features) + (treesit-font-lock-fontify-region (point-min) (point-max)))) + res) + (let ((buffer (car buffers))) + (with-current-buffer buffer + (if (treesit-parser-list) + (loop (append res (list buffer)) (cdr buffers)) + (loop res (cdr buffers)))))))) + +(defcustom treesit-font-lock-level 3 "Decoration level to be used by tree-sitter fontifications. Major modes categorize their fontification features into levels, @@ -571,7 +589,10 @@ operators, brackets, all functions and variables, etc. In addition to the decoration level, individual features can be turned on/off by calling `treesit-font-lock-recompute-features'. Changing the decoration level requires calling -`treesit-font-lock-recompute-features' to have an effect.") +`treesit-font-lock-recompute-features' to have an effect." + :type 'integer + :set #'treesit--font-lock-level-setter + :version "29.1") (defvar-local treesit--font-lock-query-expand-range (cons 0 0) "The amount to expand the start and end of the region when fontifying. |