feat(typespec): add support for typespec

This commit is contained in:
Hilmar Wiegand 2024-05-13 10:47:04 +02:00 committed by Christian Clason
parent f224fef9d2
commit c26cfc75bc
6 changed files with 170 additions and 0 deletions

View file

@ -424,6 +424,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [turtle](https://github.com/BonaBeavis/tree-sitter-turtle) (maintained by @BonaBeavis)
- [x] [twig](https://github.com/gbprod/tree-sitter-twig) (maintained by @gbprod)
- [x] [typescript](https://github.com/tree-sitter/tree-sitter-typescript) (maintained by @steelsojka)
- [x] [typespec](https://github.com/happenslol/tree-sitter-typespec) (maintained by @happenslol)
- [x] [typoscript](https://github.com/Teddytrombone/tree-sitter-typoscript) (maintained by @Teddytrombone)
- [x] [typst](https://github.com/uben0/tree-sitter-typst) (maintained by @uben0, @RaafatTurki)
- [x] [udev](https://github.com/ObserverOfTime/tree-sitter-udev) (maintained by @ObserverOfTime)

View file

@ -752,6 +752,9 @@
"typescript": {
"revision": "7b4275d077ae196fc0ce42ab3ad091574e3ec519"
},
"typespec": {
"revision": "fd9a83c6c0aaaff4b1354454b5b9f130f59dd553"
},
"typoscript": {
"revision": "43b221c0b76e77244efdaa9963e402a17c930fbc"
},

View file

@ -2181,6 +2181,14 @@ list.typescript = {
maintainers = { "@steelsojka" },
}
list.typespec = {
install_info = {
url = "https://github.com/happenslol/tree-sitter-typespec",
files = { "src/parser.c" },
},
maintainers = { "@happenslol" },
}
list.typoscript = {
install_info = {
url = "https://github.com/Teddytrombone/tree-sitter-typoscript",

View file

@ -0,0 +1,135 @@
(identifier_or_member_expression) @type
[
"is"
"extends"
"valueof"
] @keyword.operator
[
"namespace"
"model"
"scalar"
"interface"
"enum"
"union"
"alias"
] @keyword.type
[
"op"
"fn"
"dec"
] @keyword.function
"extern" @keyword.modifier
[
"import"
"using"
] @keyword.import
[
"("
")"
"{"
"}"
"<"
">"
"["
"]"
] @punctuation.bracket
[
","
";"
"."
":"
] @punctuation.delimiter
[
"|"
"&"
"="
"..."
] @operator
"?" @punctuation.special
[
(single_line_comment)
(multi_line_comment)
] @comment @spell
[
(quoted_string_literal)
(triple_quoted_string_literal)
] @string
(boolean_literal) @boolean
[
(decimal_literal)
(hex_integer_literal)
(binary_integer_literal)
] @number
(escape_sequence) @string.escape
(builtin_type) @type.builtin
(decorator
"@" @attribute
name: (identifier_or_member_expression) @attribute)
(augment_decorator_statement
name: (identifier_or_member_expression) @attribute)
(using_statement
module: (identifier_or_member_expression) @module)
(namespace_statement
name: (identifier_or_member_expression) @module)
(model_statement
name: (identifier) @type)
(model_property
name: (identifier) @variable.member)
(union_statement
name: (identifier) @type)
(union_variant
name: (identifier) @variable.member)
(scalar_statement
name: (identifier) @type)
(interface_statement
name: (identifier) @type)
(enum_statement
name: (identifier) @type)
(enum_member
name: (identifier) @constant)
(operation_statement
name: (identifier) @function)
(template_parameter
name: (identifier) @type)
(alias_statement
name: (identifier) @type)
(decorator_declaration_statement
name: (identifier) @attribute)
(function_parameter
name: (identifier) @variable.parameter)
(operation_arguments
(model_property
name: (identifier) @variable.parameter))

View file

@ -0,0 +1,18 @@
[
(model_expression)
(tuple_expression)
(namespace_body)
(interface_body)
(union_body)
(enum_body)
(template_arguments)
(template_parameters)
(operation_arguments)
] @indent.begin
[
"}"
")"
">"
"]"
] @indent.end

View file

@ -0,0 +1,5 @@
([
(single_line_comment)
(multi_line_comment)
] @injection.content
(#set! injection.language "comment"))