aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/textmodes
diff options
context:
space:
mode:
authorYuan Fu2025-11-28 00:10:17 -0800
committerYuan Fu2025-11-28 00:12:28 -0800
commit2c19f6087efe466894e1fe47121515d32d6a6d1c (patch)
tree848fbf5def2debb8ba324a5250e86b0535f285a9 /lisp/textmodes
parent85f2bf2bc7ba0a6557e992601658530f562e00d2 (diff)
downloademacs-2c19f6087efe466894e1fe47121515d32d6a6d1c.tar.gz
emacs-2c19f6087efe466894e1fe47121515d32d6a6d1c.zip
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.
Diffstat (limited to 'lisp/textmodes')
-rw-r--r--lisp/textmodes/mhtml-ts-mode.el80
1 files changed, 32 insertions, 48 deletions
diff --git a/lisp/textmodes/mhtml-ts-mode.el b/lisp/textmodes/mhtml-ts-mode.el
index b97555de2fc..fe68f17a6da 100644
--- a/lisp/textmodes/mhtml-ts-mode.el
+++ b/lisp/textmodes/mhtml-ts-mode.el
@@ -259,28 +259,20 @@ NODE and PARENT are ignored."
259 css--treesit-font-lock-feature-list)) 259 css--treesit-font-lock-feature-list))
260 "Settings for `treesit-font-lock-feature-list'.") 260 "Settings for `treesit-font-lock-feature-list'.")
261 261
262(defvar mhtml-ts-mode--treesit-font-lock-settings-cached nil
263 "Cached tree-sitter font-lock settings for `mhtml-ts-mode'.")
264
265(defun mhtml-ts-mode--treesit-font-lock-settings () 262(defun mhtml-ts-mode--treesit-font-lock-settings ()
266 "Return tree-sitter font-lock settings for `mhtml-ts-mode'. 263 "Return tree-sitter font-lock settings for `mhtml-ts-mode'."
267 264 (append html-ts-mode--font-lock-settings
268Tree-sitter font-lock settings are evaluated the first time this 265 (js--treesit-font-lock-settings)
269function is called. Subsequent calls return the first evaluated value." 266 ;; Let's replace a css rule with a new one that adds
270 (or mhtml-ts-mode--treesit-font-lock-settings-cached 267 ;; color to the css value.
271 (setq mhtml-ts-mode--treesit-font-lock-settings-cached 268 (treesit-replace-font-lock-feature-settings
272 (append html-ts-mode--font-lock-settings 269 (treesit-font-lock-rules
273 (js--treesit-font-lock-settings) 270 :language 'css
274 ;; Let's replace a css rule with a new one that adds 271 :override t
275 ;; color to the css value. 272 :feature 'variable
276 (treesit-replace-font-lock-feature-settings 273 '((plain_value) @mhtml-ts-mode--colorize-css-value
277 (treesit-font-lock-rules 274 (color_value) @mhtml-ts-mode--colorize-css-value))
278 :language 'css 275 css--treesit-settings)))
279 :override t
280 :feature 'variable
281 '((plain_value) @mhtml-ts-mode--colorize-css-value
282 (color_value) @mhtml-ts-mode--colorize-css-value))
283 css--treesit-settings)))))
284 276
285(defvar mhtml-ts-mode--treesit-thing-settings 277(defvar mhtml-ts-mode--treesit-thing-settings
286 ;; In addition to putting together the various definitions, we need to 278 ;; In addition to putting together the various definitions, we need to
@@ -300,34 +292,26 @@ function is called. Subsequent calls return the first evaluated value."
300 `((defun ,css--treesit-defun-type-regexp)))) 292 `((defun ,css--treesit-defun-type-regexp))))
301 "Settings for `treesit-thing-settings'.") 293 "Settings for `treesit-thing-settings'.")
302 294
303(defvar mhtml-ts-mode--treesit-indent-rules-cached nil
304 "Cached tree-sitter indent rules for `mhtml-ts-mode'.")
305
306(defun mhtml-ts-mode--treesit-indent-rules () 295(defun mhtml-ts-mode--treesit-indent-rules ()
307 "Return tree-sitter indent rules for `mhtml-ts-mode'. 296 "Return tree-sitter indent rules for `mhtml-ts-mode'."
308 297 (treesit--indent-rules-optimize
309Tree-sitter indent rules are evaluated the first time this function 298 (append html-ts-mode--indent-rules
310is called. Subsequent calls return the first evaluated value." 299 ;; Extended rules for js and css, to indent
311 (or mhtml-ts-mode--treesit-indent-rules-cached 300 ;; appropriately when injected into html
312 (setq mhtml-ts-mode--treesit-indent-rules-cached 301 (treesit-simple-indent-modify-rules
313 (treesit--indent-rules-optimize 302 'javascript
314 (append html-ts-mode--indent-rules 303 `((javascript ((parent-is "program")
315 ;; Extended rules for js and css, to indent 304 mhtml-ts-mode--js-css-tag-bol
316 ;; appropriately when injected into html 305 mhtml-ts-mode--js-css-indent-offset)))
317 (treesit-simple-indent-modify-rules 306 (js--treesit-indent-rules)
318 'javascript 307 :replace)
319 `((javascript ((parent-is "program") 308 (treesit-simple-indent-modify-rules
320 mhtml-ts-mode--js-css-tag-bol 309 'css
321 mhtml-ts-mode--js-css-indent-offset))) 310 `((css ((parent-is "stylesheet")
322 (js--treesit-indent-rules) 311 mhtml-ts-mode--js-css-tag-bol
323 :replace) 312 mhtml-ts-mode--js-css-indent-offset)))
324 (treesit-simple-indent-modify-rules 313 css--treesit-indent-rules
325 'css 314 :prepend))))
326 `((css ((parent-is "stylesheet")
327 mhtml-ts-mode--js-css-tag-bol
328 mhtml-ts-mode--js-css-indent-offset)))
329 css--treesit-indent-rules
330 :prepend))))))
331 315
332(defvar mhtml-ts-mode--treesit-aggregated-simple-imenu-settings 316(defvar mhtml-ts-mode--treesit-aggregated-simple-imenu-settings
333 `((html ,@html-ts-mode--treesit-simple-imenu-settings) 317 `((html ,@html-ts-mode--treesit-simple-imenu-settings)