aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManfred Egger <github@tmk-stgeorgen.at>2025-12-17 11:48:06 +0100
committerGitHub <noreply@github.com>2025-12-17 11:48:06 +0100
commit568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5 (patch)
tree662b36e9c30cea68a2454c9170740f8c9be3947f
parentdocs(readme)!: `main` is now the default branch (diff)
downloadnvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.tar
nvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.tar.gz
nvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.tar.bz2
nvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.tar.lz
nvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.tar.xz
nvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.tar.zst
nvim-treesitter-568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5.zip
feat(typoscript)!: update grammar and queries (#8341)
Breaking change: `(condition_bool)` renamed to `(condition_bool_legacy)`
-rw-r--r--lua/nvim-treesitter/parsers.lua2
-rw-r--r--runtime/queries/typoscript/folds.scm12
-rw-r--r--runtime/queries/typoscript/highlights.scm81
-rw-r--r--runtime/queries/typoscript/indents.scm12
-rw-r--r--runtime/queries/typoscript/injections.scm11
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"))