1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-05 22:20:24 -08:00

Remove the cached values in tree-sitter modes (bug#79363)

The cached values are not needed anymore since Emacs now caches
the compiled queries.

* lisp/progmodes/cmake-ts-mode.el:
(cmake-ts-mode--indent-rules-cached): Remove.
(cmake-ts-mode--indent-rules): Return values directly.
(cmake-ts-mode--font-lock-settings-cached): Remove.
(cmake-ts-mode--font-lock-settings): Return values directly.
* lisp/progmodes/php-ts-mode.el:
(php-ts-mode--font-lock-settings-cached): Remove.
(php-ts-mode--font-lock-settings): Return values directly.
(php-ts-mode--custom-html-font-lock-settings-cached): Remove.
(php-ts-mode--custom-html-font-lock-settings): Return values directly.
* lisp/textmodes/mhtml-ts-mode.el:
(mhtml-ts-mode--treesit-font-lock-settings-cached): Remove.
(mhtml-ts-mode--treesit-font-lock-settings): Return values directly.
(mhtml-ts-mode--treesit-indent-rules-cached): Remove.
(mhtml-ts-mode--treesit-indent-rules): Return values directly.
* lisp/progmodes/cmake-ts-mode.el:
(cmake-ts-mode--indent-rules-cached): Remove
(cmake-ts-mode--indent-rules): Return values directly.
(cmake-ts-mode--font-lock-settings-cached): Remove.
(cmake-ts-mode--font-lock-settings): Return values directly.
* lisp/progmodes/csharp-mode.el:
(csharp-ts-mode--font-lock-settings-cached): Remove.
(csharp-ts-mode--font-lock-settings): Return values directly.
This commit is contained in:
Yuan Fu 2025-11-28 00:10:17 -08:00
parent 85f2bf2bc7
commit 2c19f6087e
No known key found for this signature in database
GPG key ID: 56E19BC57664A442
5 changed files with 796 additions and 868 deletions

View file

@ -61,16 +61,8 @@
table)
"Syntax table for `cmake-ts-mode'.")
(defvar cmake-ts-mode--indent-rules-cached nil
"Cached tree-sitter indent rules for `cmake-ts-mode'.")
(defun cmake-ts-mode--indent-rules ()
"Return tree-sitter indent rules for `cmake-ts-mode'.
Tree-sitter indent rules are evaluated the first time this function is
called. Subsequent calls return the first evaluated value."
(or cmake-ts-mode--indent-rules-cached
(setq cmake-ts-mode--indent-rules-cached
"Return tree-sitter indent rules for `cmake-ts-mode'."
`((cmake
((node-is ")") parent-bol 0)
((node-is "else_command") parent-bol 0)
@ -89,7 +81,7 @@ called. Subsequent calls return the first evaluated value."
;; Release v0.3.0 wraps the body of commands into a body node.
,@(ignore-errors
(treesit-query-capture 'cmake '((body) @capture))
`(((parent-is "body") grand-parent cmake-ts-mode-indent-offset))))))))
`(((parent-is "body") grand-parent cmake-ts-mode-indent-offset))))))
(defvar cmake-ts-mode--constants
'("ON" "TRUE" "YES" "Y" "OFF" "FALSE" "NO" "N" "IGNORE" "NOTFOUND")
@ -148,16 +140,8 @@ Check if a node type is available, then return the right font lock rules."
eol))
@font-lock-constant-face))))))))
(defvar cmake-ts-mode--font-lock-settings-cached nil
"Cached tree-sitter font-lock settings for `cmake-ts-mode'.")
(defun cmake-ts-mode--font-lock-settings ()
"Return tree-sitter font-lock settings for `cmake-ts-mode'.
Tree-sitter font-lock settings are evaluated the first time this
function is called. Subsequent calls return the first evaluated value."
(or cmake-ts-mode--font-lock-settings-cached
(setq cmake-ts-mode--font-lock-settings-cached
"Return tree-sitter font-lock settings for `cmake-ts-mode'."
(treesit-font-lock-rules
:language 'cmake
:feature 'bracket
@ -217,7 +201,7 @@ function is called. Subsequent calls return the first evaluated value."
:language 'cmake
:feature 'error
:override t
'((ERROR) @font-lock-warning-face)))))
'((ERROR) @font-lock-warning-face)))
(defun cmake-ts-mode--defun-name (node)
"Return the defun name of NODE.

View file

@ -779,16 +779,8 @@ compilation and evaluation time conflicts."
(if (csharp-ts-mode--test-method-declaration-type-field)
'type: 'returns:))
(defvar csharp-ts-mode--font-lock-settings-cached nil
"Cached tree-sitter font-lock settings for `csharp-ts-mode'.")
(defun csharp-ts-mode--font-lock-settings ()
"Return tree-sitter font-lock settings for `csharp-ts-mode'.
Tree-sitter font-lock settings are evaluated the first time this
function is called. Subsequent calls return the first evaluated value."
(or csharp-ts-mode--font-lock-settings-cached
(setq csharp-ts-mode--font-lock-settings-cached
"Return tree-sitter font-lock settings for `csharp-ts-mode'."
(treesit-font-lock-rules
:language 'c-sharp
:feature 'expression
@ -1117,7 +1109,7 @@ function is called. Subsequent calls return the first evaluated value."
(preproc_region
(preproc_arg) @font-lock-variable-use-face)
(preproc_endregion
(preproc_arg) @font-lock-variable-use-face)))))))
(preproc_arg) @font-lock-variable-use-face)))))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-mode))

View file

@ -3513,16 +3513,8 @@ characters of the current line."
node parent bol args)
js-indent-level)))
(defvar js--treesit-indent-rules-cached nil
"Cached tree-sitter indent rules for `js-ts-mode'.")
(defun js--treesit-indent-rules ()
"Return tree-sitter indent rules for `js-ts-mode'.
Tree-sitter indent rules are evaluated the first time this function is
called. Subsequent calls return the first evaluated value."
(or js--treesit-indent-rules-cached
(setq js--treesit-indent-rules-cached
"Return tree-sitter indent rules for `js-ts-mode'."
`((javascript
((parent-is "program") parent-bol 0)
((node-is "}") standalone-parent 0)
@ -3578,7 +3570,7 @@ called. Subsequent calls return the first evaluated value."
(no-node parent-bol 0))
(jsdoc
((and (parent-is "document") c-ts-common-looking-at-star)
c-ts-common-comment-start-after-first-star -1))))))
c-ts-common-comment-start-after-first-star -1))))
(defvar js--treesit-keywords
'("as" "async" "await" "break" "case" "catch" "class" "const" "continue"
@ -3595,16 +3587,8 @@ called. Subsequent calls return the first evaluated value."
"&&" "||" "!")
"JavaScript operators for tree-sitter font-locking.")
(defvar js--treesit-font-lock-settings-cached nil
"Cached tree-sitter font-lock settings for `js-ts-mode'.")
(defun js--treesit-font-lock-settings ()
"Return tree-sitter font-lock settings for `js-ts-mode'.
Tree-sitter font-lock settings are evaluated the first time this
function is called. Subsequent calls return the first evaluated value."
(or js--treesit-font-lock-settings-cached
(setq js--treesit-font-lock-settings-cached
"Return tree-sitter font-lock settings for `js-ts-mode'."
(treesit-font-lock-rules
:language 'javascript
@ -3750,7 +3734,7 @@ function is called. Subsequent calls return the first evaluated value."
:language 'jsdoc
:override t
:feature 'definition
'((identifier) @font-lock-variable-name-face)))))
'((identifier) @font-lock-variable-name-face)))
(defun js--fontify-template-string (node override start end &rest _)
"Fontify template string but not substitution inside it.

View file

@ -955,16 +955,8 @@ characters of the current line."
("::" . ?∷))
"Value for `prettify-symbols-alist' in `php-ts-mode'.")
(defvar php-ts-mode--font-lock-settings-cached nil
"Cached tree-sitter font-lock settings for `php-ts-mode'.")
(defun php-ts-mode--font-lock-settings ()
"Return tree-sitter font-lock settings for `php-ts-mode'.
Tree-sitter font-lock settings are evaluated the first time this
function is called. Subsequent calls return the first evaluated value."
(or php-ts-mode--font-lock-settings-cached
(setq php-ts-mode--font-lock-settings-cached
"Return tree-sitter font-lock settings for `php-ts-mode'."
(treesit-font-lock-rules
:language 'php
@ -1168,22 +1160,14 @@ function is called. Subsequent calls return the first evaluated value."
:language 'php
:feature 'error
:override t
'((ERROR) @php-ts-mode--fontify-error)))))
'((ERROR) @php-ts-mode--fontify-error)))
;;; Font-lock helpers
(defvar php-ts-mode--custom-html-font-lock-settings-cached nil
"Cached tree-sitter font-lock settings for HTML when embedded in PHP.")
(defun php-ts-mode--custom-html-font-lock-settings ()
"Tree-sitter Font-lock settings for HTML when embedded in PHP.
Like `mhtml-ts-mode--font-lock-settings' but adapted for `php-ts-mode'.
Tree-sitter font-lock settings are evaluated the first time this
function is called. Subsequent calls return the first evaluated value."
(or php-ts-mode--custom-html-font-lock-settings-cached
(setq php-ts-mode--custom-html-font-lock-settings-cached
Like `mhtml-ts-mode--font-lock-settings' but adapted for `php-ts-mode'."
(treesit-replace-font-lock-feature-settings
(treesit-font-lock-rules
:language 'html
@ -1192,7 +1176,7 @@ function is called. Subsequent calls return the first evaluated value."
'((comment) @font-lock-comment-face
;; handle shebang path and others type of comment
(document (text) @font-lock-comment-face)))
(mhtml-ts-mode--treesit-font-lock-settings)))))
(mhtml-ts-mode--treesit-font-lock-settings)))
(defvar php-ts-mode--phpdoc-font-lock-settings
(treesit-font-lock-rules

View file

@ -259,16 +259,8 @@ NODE and PARENT are ignored."
css--treesit-font-lock-feature-list))
"Settings for `treesit-font-lock-feature-list'.")
(defvar mhtml-ts-mode--treesit-font-lock-settings-cached nil
"Cached tree-sitter font-lock settings for `mhtml-ts-mode'.")
(defun mhtml-ts-mode--treesit-font-lock-settings ()
"Return tree-sitter font-lock settings for `mhtml-ts-mode'.
Tree-sitter font-lock settings are evaluated the first time this
function is called. Subsequent calls return the first evaluated value."
(or mhtml-ts-mode--treesit-font-lock-settings-cached
(setq mhtml-ts-mode--treesit-font-lock-settings-cached
"Return tree-sitter font-lock settings for `mhtml-ts-mode'."
(append html-ts-mode--font-lock-settings
(js--treesit-font-lock-settings)
;; Let's replace a css rule with a new one that adds
@ -280,7 +272,7 @@ function is called. Subsequent calls return the first evaluated value."
:feature 'variable
'((plain_value) @mhtml-ts-mode--colorize-css-value
(color_value) @mhtml-ts-mode--colorize-css-value))
css--treesit-settings)))))
css--treesit-settings)))
(defvar mhtml-ts-mode--treesit-thing-settings
;; In addition to putting together the various definitions, we need to
@ -300,16 +292,8 @@ function is called. Subsequent calls return the first evaluated value."
`((defun ,css--treesit-defun-type-regexp))))
"Settings for `treesit-thing-settings'.")
(defvar mhtml-ts-mode--treesit-indent-rules-cached nil
"Cached tree-sitter indent rules for `mhtml-ts-mode'.")
(defun mhtml-ts-mode--treesit-indent-rules ()
"Return tree-sitter indent rules for `mhtml-ts-mode'.
Tree-sitter indent rules are evaluated the first time this function
is called. Subsequent calls return the first evaluated value."
(or mhtml-ts-mode--treesit-indent-rules-cached
(setq mhtml-ts-mode--treesit-indent-rules-cached
"Return tree-sitter indent rules for `mhtml-ts-mode'."
(treesit--indent-rules-optimize
(append html-ts-mode--indent-rules
;; Extended rules for js and css, to indent
@ -327,7 +311,7 @@ is called. Subsequent calls return the first evaluated value."
mhtml-ts-mode--js-css-tag-bol
mhtml-ts-mode--js-css-indent-offset)))
css--treesit-indent-rules
:prepend))))))
:prepend))))
(defvar mhtml-ts-mode--treesit-aggregated-simple-imenu-settings
`((html ,@html-ts-mode--treesit-simple-imenu-settings)