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 | ✓ | | | |
|
||||
| wat | ✓ | | | |
|
||||
| wgsl | ✓ | | | `wgsl_analyzer` |
|
||||
| wit | ✓ | | ✓ | |
|
||||
| xit | ✓ | | | |
|
||||
| xml | ✓ | | ✓ | |
|
||||
| yaml | ✓ | | ✓ | `yaml-language-server` |
|
||||
|
|
|
@ -1917,3 +1917,25 @@ roots = []
|
|||
[[grammar]]
|
||||
name = "xml"
|
||||
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