feat(wit): Add wit parser (#6428)

feat: Add injections.scm

fix: reverse order of matching

Co-authored-by: 再生花 <hoangtun0810@gmail.com>

fix: lua match for functions

doc: Resolve conflict

fix: Amend incorrect alphabetical order
This commit is contained in:
Liam Woodleigh-Hardinge 2024-04-15 13:01:56 +02:00 committed by GitHub
parent 1ba86026f7
commit 2a95ff1476
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 98 additions and 0 deletions

View file

@ -438,6 +438,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [wgsl](https://github.com/szebniok/tree-sitter-wgsl) (maintained by @szebniok)
- [x] [wgsl_bevy](https://github.com/theHamsta/tree-sitter-wgsl-bevy) (maintained by @theHamsta)
- [x] [wing](https://github.com/winglang/tree-sitter-wing) (maintained by @gshpychka, @MarkMcCulloh)
- [x] [wit](https://github.com/liamwh/tree-sitter-wit) (maintained by @liamwh)
- [x] [xcompose](https://github.com/ObserverOfTime/tree-sitter-xcompose) (maintained by @ObserverOfTime)
- [x] [xml](https://github.com/tree-sitter-grammars/tree-sitter-xml) (maintained by @ObserverOfTime)
- [x] [yaml](https://github.com/tree-sitter-grammars/tree-sitter-yaml) (maintained by @amaanq)

View file

@ -794,6 +794,9 @@
"wing": {
"revision": "5b6c2a5818a602557778d1bfc265d016cafa0712"
},
"wit": {
"revision": "39e81d6b4b0d811a62bcde46c876bf32e1475b5b"
},
"xcompose": {
"revision": "2383cc69a2c42cfade41c7cb971fb3862bec6df1"
},

View file

@ -2303,6 +2303,14 @@ list.wing = {
maintainers = { "@gshpychka", "@MarkMcCulloh" },
}
list.wit = {
install_info = {
url = "https://github.com/liamwh/tree-sitter-wit",
files = { "src/parser.c" },
},
maintainers = { "@liamwh" },
}
list.xcompose = {
install_info = {
url = "https://github.com/ObserverOfTime/tree-sitter-xcompose",

View file

@ -0,0 +1,81 @@
; Comments
(line_comment) @comment
(block_comment) @comment
; Primitive Types
[
"bool"
"s8"
"s16"
"s32"
"s64"
"u8"
"u16"
"u32"
"u64"
"float32"
"float64"
"char"
"string"
; Container Types
"list"
"tuple"
"option"
"result"
] @type.builtin
"func" @keyword.function
; Keywords for file structure and components
[
"record"
"enum"
"variant"
"flags"
"resource"
] @keyword.type
; Keywords for importing and exporting
[
"package"
"world"
"use"
"import"
] @keyword.import
; Resource Keywords
"static" @keyword.modifier
; Named Types (Capitalized identifiers)
((identifier) @type
(#match? @type "^[A-Z]"))
((identifier) @variable
(#match? @variable "^[a-z_][a-zA-Z0-9_]*$"))
; Constants (UPPER_CASE names and Enums)
((identifier) @constant
(#match? @constant "^[A-Z][A-Z0-9_]+$"))
; Functions and Methods (lowercase names followed by parentheses)
((identifier) @function
(#match? @function "^[a-z_][a-zA-Z0-9_]*%("))
; Punctuation
[
";"
":"
"->"
] @punctuation.special
; Delimiters
"," @punctuation.delimiter
; Brackets
[
"{"
"}"
"("
")"
] @punctuation.bracket

View file

@ -0,0 +1,5 @@
((line_comment) @comment
(#set! injection.language "comment"))
((block_comment) @comment
(#set! injection.language "comment"))