branch: elpa/typst-ts-mode commit dc378979745a3a0cb1d436a22f601cc96bc79dd8 Author: Meow King <mr.meowk...@anche.no> Commit: Meow King <mr.meowk...@anche.no>
fix(raw-block-highlighting): don't emit error when editing a raw block of the language of uninstalled ts-parser. JJ: --- basic-syntax.typ | 2 +- side/utils.el | 9 +++++++++ typst-ts-mode.el | 6 +++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/basic-syntax.typ b/basic-syntax.typ index bf34ccd7a3..3ac0baf52b 100644 --- a/basic-syntax.typ +++ b/basic-syntax.typ @@ -17,7 +17,7 @@ // raw block ```bash sudo rm -rf * -``` + ``` <label> // label @reference // reference diff --git a/side/utils.el b/side/utils.el index 4fc0a21d68..fa056e3dab 100644 --- a/side/utils.el +++ b/side/utils.el @@ -34,6 +34,15 @@ ;; note that when in intensive testing, you'd better turn off `auto-save-visited-mode' (whitespace-mode 1)) +(defun typst-ts/util/setup-fontification-debug-environment () + (interactive) + (setq + ;; treesit--font-lock-verbose t + debug-on-error t) + + (treesit-explore-mode 1) + (treesit-inspect-mode 1)) + (defun typst-ts/util/els/get-all-ts-major-modes () "Get all tree sitter major modes from `treesit-auto'." (require 'treesit-auto) diff --git a/typst-ts-mode.el b/typst-ts-mode.el index 8e26c02550..e01e4a1aa4 100644 --- a/typst-ts-mode.el +++ b/typst-ts-mode.el @@ -510,6 +510,8 @@ BTW, if you want to enable/disable specific font lock feature, please change "See variable `typst-ts-mode-font-lock-rules'.") (defun typst-ts-mode-font-lock-rules () + ;; use function `typst-ts/util/setup-fontification-debug-environment' in + ;; `side/utils.el' to setup test environment. "Generate font lock rules for `treesit-font-lock-rules'. If you want to customize the rules, please customize the same name variable `typst-ts-mode-font-lock-rules'." @@ -1434,7 +1436,9 @@ See `treesit-language-at-point-function'." (gethash (downcase (treesit-node-text lang-node)) typst-ts-els-tag-lang-map)))) - (if lang lang 'typst))) + (if lang + (if (treesit-ready-p lang t) lang nil) + 'typst))) (defun typst-ts-mode--treesit-range-rules (langs) ;; from vimscript-ts-mode.el