Skip to content

Commit

Permalink
Support WIT grammar (helix-editor#4525)
Browse files Browse the repository at this point in the history
  • Loading branch information
hh9527 authored and Frederik Vestre committed Feb 6, 2023
1 parent 3a4656a commit 2d0a764
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@
| wast || | | |
| wat || | | |
| wgsl || | | `wgsl_analyzer` |
| wit || || |
| xit || | | |
| xml || || |
| yaml || || `yaml-language-server` |
Expand Down
22 changes: 22 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 67 additions & 0 deletions runtime/queries/wit/highlights.scm
Original file line number Diff line number Diff line change
@@ -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 changes: 13 additions & 0 deletions runtime/queries/wit/indents.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[
(use_items)
(fields)
(variant_items)
(variant_payload)
(flags)
(enum_items)
(union_items)
(args)
(resource_items)
] @indent

[ "}" ")" ] @outdent

0 comments on commit 2d0a764

Please sign in to comment.