aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChickenkeeper2022-09-30 22:43:07 +0000
committerGitHub2022-09-30 22:43:07 +0000
commit60aa7d360777331753ae4735f8fd4ea96012d4fd (patch)
treef1cf8f030eaeab4dad5638f7af915d17125bd9a1
parent8a7a6e4cff1db3ef65a2c20e0e90c60b44516e27 (diff)
WGSL syntax highlighting fix (#3996)
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/wgsl/highlights.scm62
2 files changed, 38 insertions, 26 deletions
diff --git a/languages.toml b/languages.toml
index a7b8f93d..ab204fcc 100644
--- a/languages.toml
+++ b/languages.toml
@@ -848,7 +848,7 @@ indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "wgsl"
-source = { git = "https://github.com/szebniok/tree-sitter-wgsl", rev = "f00ff52251edbd58f4d39c9c3204383253032c11" }
+source = { git = "https://github.com/szebniok/tree-sitter-wgsl", rev = "272e89ef2aeac74178edb9db4a83c1ffef80a463" }
[[language]]
name = "llvm"
diff --git a/runtime/queries/wgsl/highlights.scm b/runtime/queries/wgsl/highlights.scm
index 7fbc87d8..baf9dd8f 100644
--- a/runtime/queries/wgsl/highlights.scm
+++ b/runtime/queries/wgsl/highlights.scm
@@ -1,23 +1,41 @@
-(const_literal) @constant.numeric
+(int_literal) @constant.numeric.integer
+(float_literal) @constant.numeric.float
+(bool_literal) @constant.builtin.boolean
-(type_declaration) @type
+(global_constant_declaration) @variable
+(global_variable_declaration) @variable
+(compound_statement) @variable
+(const_expression) @function
+
+(variable_identifier_declaration
+ (identifier) @variable
+ (type_declaration) @type)
(function_declaration
- (identifier) @function)
+ (identifier) @function
+ (function_return_type_declaration
+ (type_declaration) @type))
+
+(parameter
+ (variable_identifier_declaration
+ (identifier) @variable.parameter
+ (type_declaration) @type))
(struct_declaration
(identifier) @type)
+
+(struct_declaration
+ (struct_member
+ (variable_identifier_declaration
+ (identifier) @variable.other.member
+ (type_declaration) @type)))
(type_constructor_or_function_call_expression
(type_declaration) @function)
-(parameter
- (variable_identifier_declaration (identifier) @variable.parameter))
-
[
"struct"
"bitcast"
- ; "block"
"discard"
"enable"
"fallthrough"
@@ -26,36 +44,28 @@
"private"
"read"
"read_write"
- "return"
"storage"
"type"
"uniform"
"var"
"workgroup"
"write"
+ "override"
(texel_format)
-] @keyword ; TODO reserved keywords
+] @keyword
-[
- (true)
- (false)
-] @constant.builtin.boolean
+"fn" @keyword.function
-[ "," "." ":" ";" ] @punctuation.delimiter
+"return" @keyword.control.return
-;; brackets
-[
- "("
- ")"
- "["
- "]"
- "{"
- "}"
-] @punctuation.bracket
+["," "." ":" ";"] @punctuation.delimiter
+
+["(" ")" "[" "]" "{" "}"] @punctuation.bracket
[
"loop"
"for"
+ "while"
"break"
"continue"
"continuing"
@@ -64,7 +74,6 @@
[
"if"
"else"
- "elseif"
"switch"
"case"
"default"
@@ -92,10 +101,13 @@
"*"
"~"
"^"
+ "@"
+ "++"
+ "--"
] @operator
(attribute
- (identifier) @variable.other.member)
+ (identifier) @attribute)
(comment) @comment