Support WIT grammar (#4525)
This commit is contained in:
parent
df3c6412ac
commit
9df4358492
4 changed files with 103 additions and 0 deletions
|
@ -126,6 +126,7 @@
|
||||||
| wast | ✓ | | | |
|
| wast | ✓ | | | |
|
||||||
| wat | ✓ | | | |
|
| wat | ✓ | | | |
|
||||||
| wgsl | ✓ | | | `wgsl_analyzer` |
|
| wgsl | ✓ | | | `wgsl_analyzer` |
|
||||||
|
| wit | ✓ | | ✓ | |
|
||||||
| xit | ✓ | | | |
|
| xit | ✓ | | | |
|
||||||
| xml | ✓ | | ✓ | |
|
| xml | ✓ | | ✓ | |
|
||||||
| yaml | ✓ | | ✓ | `yaml-language-server` |
|
| yaml | ✓ | | ✓ | `yaml-language-server` |
|
||||||
|
|
|
@ -1917,3 +1917,25 @@ roots = []
|
||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "xml"
|
name = "xml"
|
||||||
source = { git = "https://github.com/RenjiSann/tree-sitter-xml", rev = "422528a43630db6dcc1e222d1c5ee3babd559473" }
|
source = { git = "https://github.com/RenjiSann/tree-sitter-xml", rev = "422528a43630db6dcc1e222d1c5ee3babd559473" }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "wit"
|
||||||
|
scope = "source.wit"
|
||||||
|
injection-regex = "wit"
|
||||||
|
file-types = ["wit"]
|
||||||
|
roots = []
|
||||||
|
comment-token = "//"
|
||||||
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
|
||||||
|
[language.auto-pairs]
|
||||||
|
'(' = ')'
|
||||||
|
'{' = '}'
|
||||||
|
'[' = ']'
|
||||||
|
'"' = '"'
|
||||||
|
"'" = "'"
|
||||||
|
"<" = ">"
|
||||||
|
|
||||||
|
[[grammar]]
|
||||||
|
name = "wit"
|
||||||
|
source = { git = "https://github.com/hh9527/tree-sitter-wit", rev = "c917790ab9aec50c5fd664cbfad8dd45110cfff3" }
|
||||||
|
|
||||||
|
|
67
runtime/queries/wit/highlights.scm
Normal file
67
runtime/queries/wit/highlights.scm
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
(line_comment) @comment.line
|
||||||
|
(block_comment) @comment.block
|
||||||
|
(ty (ident) @type)
|
||||||
|
|
||||||
|
(item_type name: (ident) @type)
|
||||||
|
(item_record name: (ident) @type)
|
||||||
|
(item_variant name: (ident) @type)
|
||||||
|
(item_flags name: (ident) @type)
|
||||||
|
(item_enum name: (ident) @type)
|
||||||
|
(item_union name: (ident) @type)
|
||||||
|
(item_resource name: (ident) @type)
|
||||||
|
|
||||||
|
(item_use from: (ident) @namespace)
|
||||||
|
(use_item name: (ident) @type)
|
||||||
|
(item_func name: (ident) @function)
|
||||||
|
(method name: (ident) @function.method)
|
||||||
|
(fields (named_ty name: (ident) @variable.other.member))
|
||||||
|
(input (args (named_ty name: (ident) @variable.parameter)))
|
||||||
|
(output (args (named_ty name: (ident) @variable.other.member)))
|
||||||
|
(flags (ident) @constant)
|
||||||
|
(enum_items (ident) @constant)
|
||||||
|
(variant_item tag: (ident) @type.enum.variant)
|
||||||
|
|
||||||
|
[
|
||||||
|
(unit)
|
||||||
|
|
||||||
|
"u8" "u16" "u32" "u64"
|
||||||
|
"s8" "s16" "s32" "s64"
|
||||||
|
"float32" "float64"
|
||||||
|
"char" "bool" "string"
|
||||||
|
] @type.builtin
|
||||||
|
|
||||||
|
[
|
||||||
|
"list"
|
||||||
|
"option"
|
||||||
|
"result"
|
||||||
|
"tuple"
|
||||||
|
"future"
|
||||||
|
"stream"
|
||||||
|
] @function.macro
|
||||||
|
|
||||||
|
[ "," ":" ] @punctuation.delimiter
|
||||||
|
[ "(" ")" "{" "}" "<" ">" ] @punctuation.bracket
|
||||||
|
[ "=" "->" ] @operator
|
||||||
|
|
||||||
|
[
|
||||||
|
"record"
|
||||||
|
"flags"
|
||||||
|
"variant"
|
||||||
|
"enum"
|
||||||
|
"union"
|
||||||
|
"type"
|
||||||
|
"resource"
|
||||||
|
] @keyword.storage.type
|
||||||
|
|
||||||
|
"func" @keyword
|
||||||
|
|
||||||
|
[
|
||||||
|
"static"
|
||||||
|
] @keyword.storage.modifier
|
||||||
|
|
||||||
|
[
|
||||||
|
(star)
|
||||||
|
"use"
|
||||||
|
"as"
|
||||||
|
"from"
|
||||||
|
] @keyword.control.import
|
13
runtime/queries/wit/indents.scm
Normal file
13
runtime/queries/wit/indents.scm
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[
|
||||||
|
(use_items)
|
||||||
|
(fields)
|
||||||
|
(variant_items)
|
||||||
|
(variant_payload)
|
||||||
|
(flags)
|
||||||
|
(enum_items)
|
||||||
|
(union_items)
|
||||||
|
(args)
|
||||||
|
(resource_items)
|
||||||
|
] @indent
|
||||||
|
|
||||||
|
[ "}" ")" ] @outdent
|
Loading…
Reference in a new issue