From 568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5 Mon Sep 17 00:00:00 2001 From: Manfred Egger Date: Wed, 17 Dec 2025 11:48:06 +0100 Subject: feat(typoscript)!: update grammar and queries (#8341) Breaking change: `(condition_bool)` renamed to `(condition_bool_legacy)` --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/typoscript/folds.scm | 12 ++++- runtime/queries/typoscript/highlights.scm | 81 +++++++++++++++++++++++++++---- runtime/queries/typoscript/indents.scm | 12 ++++- runtime/queries/typoscript/injections.scm | 11 +++++ 5 files changed, 104 insertions(+), 14 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 9aaf4c477..7a89e31a7 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2422,7 +2422,7 @@ return { }, typoscript = { install_info = { - revision = '5d8fde870b0ded1f429ba5bb249a9d9f8589ff5f', + revision = 'e59069a4cc08b2dacccd40827fe971ca3c6821b7', url = 'https://github.com/Teddytrombone/tree-sitter-typoscript', }, maintainers = { '@Teddytrombone' }, diff --git a/runtime/queries/typoscript/folds.scm b/runtime/queries/typoscript/folds.scm index fd7d23999..2bb3f69c5 100644 --- a/runtime/queries/typoscript/folds.scm +++ b/runtime/queries/typoscript/folds.scm @@ -1 +1,11 @@ -(block) @fold +[ + (block) + (condition_block) + (multiline_value) +] @fold + +(import_legacy)+ @fold + +(import)+ @fold + +(comment)+ @fold diff --git a/runtime/queries/typoscript/highlights.scm b/runtime/queries/typoscript/highlights.scm index 63327f178..bc214cba0 100644 --- a/runtime/queries/typoscript/highlights.scm +++ b/runtime/queries/typoscript/highlights.scm @@ -1,10 +1,28 @@ (identifier) @variable.member +(symfony_variable) @variable + (constant) @constant -(modifier_function) @function +(symfony_method) @function.method.call + +[ + (modifier_function) + (symfony_function) +] @function.call + +[ + (modifier_predefined) + (symfony_predefined_function) +] @function.builtin + +(modifier_parameter) @variable.parameter + +(symfony_function_parameter + (symfony_variable) @variable.parameter) -(modifier_predefined) @function.builtin +(symfony_method_parameter + (symfony_variable) @variable.parameter) [ (condition) @@ -12,13 +30,19 @@ (condition_else) ] @keyword.conditional -(cobject) @type.builtin - [ "@import" "INCLUDE_TYPOSCRIPT" ] @keyword.import +(condition_attribute) @tag.attribute + +(cobject) @type.builtin + +(symfony_built_in_variable) @variable.builtin + +(symfony_property) @variable.member + [ (comment) (single_line_comment) @@ -26,22 +50,59 @@ [ (string) - (multiline_value) + (multiline_value_content) + (symfony_string) ] @string +(deletion_line + ">" @operator) + +(copy_line + "<" @operator) + [ "=" - ">" - "<" - ":=" "=<" - (condition_bool) + ":=" + "?." + (symfony_condition_operator) + (condition_bool_legacy) + (constant_null_coalescing) ] @operator -"," @punctuation.delimiter +(symfony_ternary_operator) @keyword.conditional.ternary + +((symfony_condition_operator) @keyword.operator + (#any-of? @keyword.operator + "and" "or" "xor" "not" "not in" "in" "contains" "starts with" "ends with" "matches")) + +[ + "," + "." +] @punctuation.delimiter + +(symfony_property_access + "." @operator) + +(symfony_method_call + "." @operator) [ "(" ")" + "[" + "]" (block_punctuation) ] @punctuation.bracket + +(condition + "[" @punctuation.special) + +(condition + "]" @punctuation.special) + +(symfony_number) @number + +(symfony_boolean) @boolean + +(symfony_null) @constant.builtin diff --git a/runtime/queries/typoscript/indents.scm b/runtime/queries/typoscript/indents.scm index 4f5fb4797..ff5ddb603 100644 --- a/runtime/queries/typoscript/indents.scm +++ b/runtime/queries/typoscript/indents.scm @@ -1,5 +1,13 @@ (block) @indent.begin -"}" @indent.branch @indent.end +"}" @indent.end -(comment) @indent.ignore +[ + "{" + "}" +] @indent.branch + +[ + (comment) + (multiline_value) +] @indent.ignore diff --git a/runtime/queries/typoscript/injections.scm b/runtime/queries/typoscript/injections.scm index 2f0e58eb6..7e4bfe599 100644 --- a/runtime/queries/typoscript/injections.scm +++ b/runtime/queries/typoscript/injections.scm @@ -1,2 +1,13 @@ +((multiline_line + (identifier) @_id + . + (multiline_value + (multiline_value_content) @injection.content)) + (#lua-match? @_id "_CSS_DEFAULT_STYLE$") + (#set! injection.language "css")) + ((comment) @injection.content (#set! injection.language "comment")) + +((single_line_comment) @injection.content + (#set! injection.language "comment")) -- cgit v1.2.3-70-g09d2