Skip to content

Commit

Permalink
Add language support for WGSL (helix-editor#1166)
Browse files Browse the repository at this point in the history
  • Loading branch information
kirawi authored Nov 27, 2021
1 parent 6e62c3d commit 4ec20ea
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,7 @@
path = helix-syntax/languages/tree-sitter-perl
url = https://github.com/ganezdragon/tree-sitter-perl
shallow = true
[submodule "helix-syntax/languages/tree-sitter-wgsl"]
path = helix-syntax/languages/tree-sitter-wgsl
url = https://github.com/szebniok/tree-sitter-wgsl
shallow = true
1 change: 1 addition & 0 deletions helix-syntax/languages/tree-sitter-wgsl
Submodule tree-sitter-wgsl added at f00ff5
8 changes: 8 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -405,3 +405,11 @@ file-types = ["rkt"]
shebangs = ["racket"]
comment-token = ";"
language-server = { command = "racket", args = ["-l", "racket-langserver"] }

[[language]]
name = "wgsl"
scope = "source.wgsl"
file-types = ["wgsl"]
roots = []
comment-token = "//"
indent = { tab-width = 4, unit = " " }
102 changes: 102 additions & 0 deletions runtime/queries/wgsl/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
(const_literal) @constant.numeric

(type_declaration) @type

(function_declaration
(identifier) @function)

(struct_declaration
(identifier) @type)

(type_constructor_or_function_call_expression
(type_declaration) @function)

(parameter
(variable_identifier_declaration (identifier) @variable.parameter))

[
"struct"
"bitcast"
; "block"
"discard"
"enable"
"fallthrough"
"fn"
"let"
"private"
"read"
"read_write"
"return"
"storage"
"type"
"uniform"
"var"
"workgroup"
"write"
(texel_format)
] @keyword ; TODO reserved keywords

[
(true)
(false)
] @constant.builtin.boolean

[ "," "." ":" ";" ] @punctuation.delimiter

;; brackets
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket

[
"loop"
"for"
"break"
"continue"
"continuing"
] @keyword.control.repeat

[
"if"
"else"
"elseif"
"switch"
"case"
"default"
] @keyword.control.conditional

[
"&"
"&&"
"/"
"!"
"="
"=="
"!="
">"
">="
">>"
"<"
"<="
"<<"
"%"
"-"
"+"
"|"
"||"
"*"
"~"
"^"
] @operator

(attribute
(identifier) @variable.other.member)

(comment) @comment

(ERROR) @error

0 comments on commit 4ec20ea

Please sign in to comment.