diff options
author | David Neto <dneto@google.com> | 2023-03-30 05:09:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-30 11:09:02 +0200 |
commit | 5175d68c87a5660da150e3cd942ad90d55b8f143 (patch) | |
tree | 4f1031a522a77804a5c5b1571d73371bba221930 /tests | |
parent | e8fe38fa9a04afc04643d0598058ebb8449e2755 (diff) | |
download | pygments-git-5175d68c87a5660da150e3cd942ad90d55b8f143.tar.gz |
Lexer for the WebGPU Shading Language (#2386)
See https://w3.org/TR/WGSL
Further work is needed to refine it:
- treat context-dependent names specially
- treat template start and template end tokens specially, perhaps
Fixes: #2388
Diffstat (limited to 'tests')
-rw-r--r-- | tests/snippets/wgsl/address-space.txt | 72 | ||||
-rw-r--r-- | tests/snippets/wgsl/attribute.txt | 87 | ||||
-rw-r--r-- | tests/snippets/wgsl/block-comment.txt | 34 | ||||
-rw-r--r-- | tests/snippets/wgsl/bool-types.txt | 47 | ||||
-rw-r--r-- | tests/snippets/wgsl/const-numbers.txt | 549 | ||||
-rw-r--r-- | tests/snippets/wgsl/depth-texture.txt | 97 | ||||
-rw-r--r-- | tests/snippets/wgsl/external-texture.txt | 21 | ||||
-rw-r--r-- | tests/snippets/wgsl/line-comment.txt | 13 | ||||
-rw-r--r-- | tests/snippets/wgsl/multisampled-texture.txt | 24 | ||||
-rw-r--r-- | tests/snippets/wgsl/numeric-types.txt | 642 | ||||
-rw-r--r-- | tests/snippets/wgsl/sampled-texture.txt | 134 | ||||
-rw-r--r-- | tests/snippets/wgsl/storage-texture.txt | 98 | ||||
-rw-r--r-- | tests/snippets/wgsl/texel-formats.txt | 410 | ||||
-rw-r--r-- | tests/snippets/wgsl/tiny-render.txt | 105 | ||||
-rw-r--r-- | tests/snippets/wgsl/type-generators.txt | 43 |
15 files changed, 2376 insertions, 0 deletions
diff --git a/tests/snippets/wgsl/address-space.txt b/tests/snippets/wgsl/address-space.txt new file mode 100644 index 00000000..9d7414bb --- /dev/null +++ b/tests/snippets/wgsl/address-space.txt @@ -0,0 +1,72 @@ +---input--- +alias a=ptr<function,i32>; +alias b=ptr<private,i32>; +alias c=ptr<workgroup,i32>; +alias d=ptr<uniform,i32>; +alias e=ptr<storage,i32>; + +---tokens--- +'alias' Keyword +' ' Text.Whitespace +'a' Name +'=' Operator +'ptr' Name.Builtin +'<' Operator +'function' Name.Builtin +',' Punctuation +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'b' Name +'=' Operator +'ptr' Name.Builtin +'<' Operator +'private' Name.Builtin +',' Punctuation +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'c' Name +'=' Operator +'ptr' Name.Builtin +'<' Operator +'workgroup' Name.Builtin +',' Punctuation +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'d' Name +'=' Operator +'ptr' Name.Builtin +'<' Operator +'uniform' Name.Builtin +',' Punctuation +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'e' Name +'=' Operator +'ptr' Name.Builtin +'<' Operator +'storage' Name.Builtin +',' Punctuation +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/attribute.txt b/tests/snippets/wgsl/attribute.txt new file mode 100644 index 00000000..417c9bf6 --- /dev/null +++ b/tests/snippets/wgsl/attribute.txt @@ -0,0 +1,87 @@ +---input--- +@id(0) override x:i32 = 1; +@ id(1) override y:i32 = 2; +@//comment +id(1) override z:i32 = 3; +@must_use fn foo() -> i32 { return 32; } + +---tokens--- +'@' Name.Decorator +'id' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'override' Keyword.Declaration +' ' Text.Whitespace +'x' Name +':' Punctuation +'i32' Name.Builtin +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +' ' Text.Whitespace +'id' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'override' Keyword.Declaration +' ' Text.Whitespace +'y' Name +':' Punctuation +'i32' Name.Builtin +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'2' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'//comment\n' Comment.Single + +'id' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'override' Keyword.Declaration +' ' Text.Whitespace +'z' Name +':' Punctuation +'i32' Name.Builtin +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'3' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'must_use' Name.Decorator +' ' Text.Whitespace +'fn' Keyword +' ' Text.Whitespace +'foo' Name +'(' Punctuation +')' Punctuation +' ' Text.Whitespace +'->' Punctuation +' ' Text.Whitespace +'i32' Name.Builtin +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'return' Keyword +' ' Text.Whitespace +'32' Literal.Number.Integer +';' Punctuation +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/block-comment.txt b/tests/snippets/wgsl/block-comment.txt new file mode 100644 index 00000000..021d4501 --- /dev/null +++ b/tests/snippets/wgsl/block-comment.txt @@ -0,0 +1,34 @@ +---input--- + /**/ + /*block with newline + */ + /*block with line + ending comment// */ + /* nested /* + */ + */ + +---tokens--- +' ' Text.Whitespace +'/*' Comment.Multiline +'*/' Comment.Multiline +'\n ' Text.Whitespace +'/*' Comment.Multiline +'block with newline\n ' Comment.Multiline +'*/' Comment.Multiline +'\n ' Text.Whitespace +'/*' Comment.Multiline +'block with line\n ending comment' Comment.Multiline +'/' Comment.Multiline +'/' Comment.Multiline +' ' Comment.Multiline +'*/' Comment.Multiline +'\n ' Text.Whitespace +'/*' Comment.Multiline +' nested ' Comment.Multiline +'/*' Comment.Multiline +'\n ' Comment.Multiline +'*/' Comment.Multiline +'\n ' Comment.Multiline +'*/' Comment.Multiline +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/bool-types.txt b/tests/snippets/wgsl/bool-types.txt new file mode 100644 index 00000000..7b4a443f --- /dev/null +++ b/tests/snippets/wgsl/bool-types.txt @@ -0,0 +1,47 @@ +---input--- +alias boolean=bool; +alias bvec2=vec2<bool>; +alias bvec3=vec3<bool>; +alias bvec4=vec4<bool>; + +---tokens--- +'alias' Keyword +' ' Text.Whitespace +'boolean' Name +'=' Operator +'bool' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'bvec2' Name +'=' Operator +'vec2' Name.Builtin +'<' Operator +'bool' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'bvec3' Name +'=' Operator +'vec3' Name.Builtin +'<' Operator +'bool' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'bvec4' Name +'=' Operator +'vec4' Name.Builtin +'<' Operator +'bool' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/const-numbers.txt b/tests/snippets/wgsl/const-numbers.txt new file mode 100644 index 00000000..fdfa881c --- /dev/null +++ b/tests/snippets/wgsl/const-numbers.txt @@ -0,0 +1,549 @@ +---input--- +const a = 0; +const au = 0u; +const ai = 0i; +const b = 12345; +const bu = 12345u; +const bi= 12345i; +const c = 0x0; +const cu = 0x0u; +const ci = 0x0i; +const d = 0x12345; +const di = 0x12345i; +const du = 0x12345u; +const eh = 0h; +const ef = 0f; +const f = 1.; +const fh = 1.h; +const ff = 1.f; +const g = .1; +const gh = .1h; +const gf = .1f; +const g = 1e1; +const gh = 1e1h; +const gf = 1e1f; +const h = 1e+1; +const hh = 1e+1h; +const hf = 1e+1f; +const i = 1e-1; +const ih = 1e-1h; +const if = 1e-1f; +const j = 1.0e+1; +const jh = 1.0e+1h; +const jf= 1.0e+1f; +const k = 1.0e-1; +const kh = 1.0e-1h; +const kf= 1.0e-1f; +const l = 0x1p1; +const lh = 0x1p1h; +const lf = 0x1p1f; +const m = 0x1p+1; +const mh = 0x1p+1h; +const mf = 0x1p+1f; +const n = 0x1p-1; +const nh = 0x1p-1h; +const nf = 0x1p-1f; +const o = 0x1.p1; +const oh = 0x1.p1h; +const of = 0x1.p1f; +const p = 0x.1p1; +const ph = 0x.1p1h; +const pf = 0x.1p1f; + +---tokens--- +'const' Keyword.Declaration +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'au' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0u' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'ai' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0i' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'b' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'12345' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'bu' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'12345u' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'bi' Name +'=' Operator +' ' Text.Whitespace +'12345i' Literal.Number.Integer +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'c' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x0' Literal.Number.Hex +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'cu' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x0u' Literal.Number.Hex +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'ci' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x0i' Literal.Number.Hex +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'d' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x12345' Literal.Number.Hex +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'di' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x12345i' Literal.Number.Hex +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'du' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x12345u' Literal.Number.Hex +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'eh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'ef' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'fh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'ff' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'g' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'.1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'gh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'.1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'gf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'.1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'g' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'gh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'gf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'h' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e+1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'hh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e+1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'hf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e+1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'i' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e-1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'ih' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e-1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'if' Keyword +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1e-1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'j' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.0e+1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'jh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.0e+1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'jf' Name +'=' Operator +' ' Text.Whitespace +'1.0e+1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'k' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.0e-1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'kh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1.0e-1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'kf' Name +'=' Operator +' ' Text.Whitespace +'1.0e-1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'l' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'lh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'lf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p+1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'mh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p+1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'mf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p+1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'n' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p-1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'nh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p-1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'nf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1p-1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'o' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1.p1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'oh' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1.p1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'of' Keyword.Reserved +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x1.p1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'p' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x.1p1' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'ph' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x.1p1h' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace + +'const' Keyword.Declaration +' ' Text.Whitespace +'pf' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'0x.1p1f' Literal.Number.Float +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/depth-texture.txt b/tests/snippets/wgsl/depth-texture.txt new file mode 100644 index 00000000..c93e9c7d --- /dev/null +++ b/tests/snippets/wgsl/depth-texture.txt @@ -0,0 +1,97 @@ +---input--- +@group(0) @binding(1) var texture_depth_2d; +@group(0) @binding(2) var texture_depth_2d_array; +@group(0) @binding(4) var texture_depth_cube; +@group(0) @binding(5) var texture_depth_cube_array; +@group(0) @binding(5) var texture_depth_multisampled_2d; + +---tokens--- +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_depth_2d' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_depth_2d_array' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'4' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_depth_cube' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_depth_cube_array' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_depth_multisampled_2d' Name.Builtin +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/external-texture.txt b/tests/snippets/wgsl/external-texture.txt new file mode 100644 index 00000000..41f30b59 --- /dev/null +++ b/tests/snippets/wgsl/external-texture.txt @@ -0,0 +1,21 @@ +---input--- +@group(0) @binding(5) var texture_external; + +---tokens--- +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_external' Name.Builtin +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/line-comment.txt b/tests/snippets/wgsl/line-comment.txt new file mode 100644 index 00000000..72a535ff --- /dev/null +++ b/tests/snippets/wgsl/line-comment.txt @@ -0,0 +1,13 @@ +---input--- + // this is a line-ending comment + //* embed a bock comment start, after a space +// /* embed a bock comment start, v2 + +---tokens--- +' ' Text.Whitespace +'// this is a line-ending comment\n' Comment.Single + +' ' Text.Whitespace +'//* embed a bock comment start, after a space\n' Comment.Single + +'// /* embed a bock comment start, v2\n' Comment.Single diff --git a/tests/snippets/wgsl/multisampled-texture.txt b/tests/snippets/wgsl/multisampled-texture.txt new file mode 100644 index 00000000..a94fe1f0 --- /dev/null +++ b/tests/snippets/wgsl/multisampled-texture.txt @@ -0,0 +1,24 @@ +---input--- +@group(0) @binding(5) var texture_multisampled_2d<f32>; + +---tokens--- +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_multisampled_2d' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/numeric-types.txt b/tests/snippets/wgsl/numeric-types.txt new file mode 100644 index 00000000..21743649 --- /dev/null +++ b/tests/snippets/wgsl/numeric-types.txt @@ -0,0 +1,642 @@ +---input--- +enable f16; +alias int=i32; +alias uint=u32; +alias float=f32; +alias half=f16; +alias ivec2=vec2i; +alias uvec2=vec2u; +alias vec2=vec2f; +alias ivec3=vec3i; +alias uvec3=vec3u; +alias vec3=vec3f; +alias ivec4=vec4i; +alias uvec4=vec4u; +alias ivec2_=vec2<i32>; +alias uvec2_=vec2<u32>; +alias vec2_=vec2<f32>; +alias ivec3_=vec3<i32>; +alias uvec3_=vec3<u32>; +alias vec3_=vec3<f32>; +alias ivec4_=vec4<i32>; +alias uvec4_=vec4<u32>; +alias vec4_=vec4<f32>; +alias hvec2=vec2h; +alias hvec3=vec3h; +alias hvec4=vec4h; +alias hvec4_=vec4<f16>; +alias m22=mat2x2f; +alias m23=mat2x3f; +alias m24=mat2x4f; +alias m32=mat3x2f; +alias m33=mat3x3f; +alias m34=mat3x4f; +alias m42=mat4x2f; +alias m43=mat4x3f; +alias m44=mat4x4f; +alias m22_=mat2x2<f32>; +alias m23_=mat2x3<f32>; +alias m24_=mat2x4<f32>; +alias m32_=mat3x2<f32>; +alias m33_=mat3x3<f32>; +alias m34_=mat3x4<f32>; +alias m42_=mat4x2<f32>; +alias m43_=mat4x3<f32>; +alias m44_=mat4x4<f32>; +alias m22=mat2x2h; +alias m23=mat2x3h; +alias h24=mat2x4h; +alias h32=mat3x2h; +alias h33=mat3x3h; +alias h34=mat3x4h; +alias h42=mat4x2h; +alias h43=mat4x3h; +alias h44=mat4x4h; +alias h22_=mat2x2<f16>; +alias h23_=mat2x3<f16>; +alias h24_=mat2x4<f16>; +alias h32_=mat3x2<f16>; +alias h33_=mat3x3<f16>; +alias h34_=mat3x4<f16>; +alias h42_=mat4x2<f16>; +alias h43_=mat4x3<f16>; +alias h44_=mat4x4<f16>; + +---tokens--- +'enable' Keyword +' ' Text.Whitespace +'f16' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'int' Name +'=' Operator +'i32' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uint' Name +'=' Operator +'u32' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'float' Name +'=' Operator +'f32' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'half' Name +'=' Operator +'f16' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'ivec2' Name +'=' Operator +'vec2i' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uvec2' Name +'=' Operator +'vec2u' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'vec2' Name.Builtin +'=' Operator +'vec2f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'ivec3' Name +'=' Operator +'vec3i' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uvec3' Name +'=' Operator +'vec3u' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'vec3' Name.Builtin +'=' Operator +'vec3f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'ivec4' Name +'=' Operator +'vec4i' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uvec4' Name +'=' Operator +'vec4u' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'ivec2_' Name +'=' Operator +'vec2' Name.Builtin +'<' Operator +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uvec2_' Name +'=' Operator +'vec2' Name.Builtin +'<' Operator +'u32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'vec2_' Name +'=' Operator +'vec2' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'ivec3_' Name +'=' Operator +'vec3' Name.Builtin +'<' Operator +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uvec3_' Name +'=' Operator +'vec3' Name.Builtin +'<' Operator +'u32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'vec3_' Name +'=' Operator +'vec3' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'ivec4_' Name +'=' Operator +'vec4' Name.Builtin +'<' Operator +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'uvec4_' Name +'=' Operator +'vec4' Name.Builtin +'<' Operator +'u32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'vec4_' Name +'=' Operator +'vec4' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'hvec2' Name +'=' Operator +'vec2h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'hvec3' Name +'=' Operator +'vec3h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'hvec4' Name +'=' Operator +'vec4h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'hvec4_' Name +'=' Operator +'vec4' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m22' Name +'=' Operator +'mat2x2f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m23' Name +'=' Operator +'mat2x3f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m24' Name +'=' Operator +'mat2x4f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m32' Name +'=' Operator +'mat3x2f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m33' Name +'=' Operator +'mat3x3f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m34' Name +'=' Operator +'mat3x4f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m42' Name +'=' Operator +'mat4x2f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m43' Name +'=' Operator +'mat4x3f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m44' Name +'=' Operator +'mat4x4f' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m22_' Name +'=' Operator +'mat2x2' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m23_' Name +'=' Operator +'mat2x3' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m24_' Name +'=' Operator +'mat2x4' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m32_' Name +'=' Operator +'mat3x2' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m33_' Name +'=' Operator +'mat3x3' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m34_' Name +'=' Operator +'mat3x4' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m42_' Name +'=' Operator +'mat4x2' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m43_' Name +'=' Operator +'mat4x3' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m44_' Name +'=' Operator +'mat4x4' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m22' Name +'=' Operator +'mat2x2h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'m23' Name +'=' Operator +'mat2x3h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h24' Name +'=' Operator +'mat2x4h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h32' Name +'=' Operator +'mat3x2h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h33' Name +'=' Operator +'mat3x3h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h34' Name +'=' Operator +'mat3x4h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h42' Name +'=' Operator +'mat4x2h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h43' Name +'=' Operator +'mat4x3h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h44' Name +'=' Operator +'mat4x4h' Name.Builtin +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h22_' Name +'=' Operator +'mat2x2' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h23_' Name +'=' Operator +'mat2x3' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h24_' Name +'=' Operator +'mat2x4' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h32_' Name +'=' Operator +'mat3x2' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h33_' Name +'=' Operator +'mat3x3' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h34_' Name +'=' Operator +'mat3x4' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h42_' Name +'=' Operator +'mat4x2' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h43_' Name +'=' Operator +'mat4x3' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'h44_' Name +'=' Operator +'mat4x4' Name.Builtin +'<' Operator +'f16' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/sampled-texture.txt b/tests/snippets/wgsl/sampled-texture.txt new file mode 100644 index 00000000..4b200716 --- /dev/null +++ b/tests/snippets/wgsl/sampled-texture.txt @@ -0,0 +1,134 @@ +---input--- +@group(0) @binding(0) var texture_1d<f32>; +@group(0) @binding(1) var texture_2d<f32>; +@group(0) @binding(2) var texture_2d_array<f32>; +@group(0) @binding(3) var texture_3d<f32>; +@group(0) @binding(4) var texture_cube<f32>; +@group(0) @binding(5) var texture_cube_array<f32>; + +---tokens--- +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_1d' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_2d' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_2d_array' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'3' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_3d' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'4' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_cube' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_cube_array' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/storage-texture.txt b/tests/snippets/wgsl/storage-texture.txt new file mode 100644 index 00000000..0b66cb5c --- /dev/null +++ b/tests/snippets/wgsl/storage-texture.txt @@ -0,0 +1,98 @@ +---input--- +@group(0) @binding(0) var texture_storage_1d<rgba8unorm,write>; +@group(0) @binding(1) var texture_storage_2d<rgba8unorm,write>; +@group(0) @binding(2) var texture_storage_2d_array<rgba8unorm,write>; +@group(0) @binding(3) var texture_storage_3d<rgba8unorm,write>; + +---tokens--- +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_1d' Name.Builtin +'<' Operator +'rgba8unorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba8unorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d_array' Name.Builtin +'<' Operator +'rgba8unorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'3' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_3d' Name.Builtin +'<' Operator +'rgba8unorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/texel-formats.txt b/tests/snippets/wgsl/texel-formats.txt new file mode 100644 index 00000000..127b92eb --- /dev/null +++ b/tests/snippets/wgsl/texel-formats.txt @@ -0,0 +1,410 @@ +---input--- +@group(0) @binding(0) var texture_storage_2d<rgba8unorm,write>; +@group(0) @binding(1) var texture_storage_2d<rgba8snorm,write>; +@group(0) @binding(2) var texture_storage_2d<rgba8uint,write>; +@group(0) @binding(3) var texture_storage_2d<rgba8sint,write>; +@group(0) @binding(4) var texture_storage_2d<rgba16uint,write>; +@group(0) @binding(5) var texture_storage_2d<rgba16sint,write>; +@group(0) @binding(6) var texture_storage_2d<rgba16float,write>; +@group(0) @binding(7) var texture_storage_2d<r32uint,write>; +@group(0) @binding(8) var texture_storage_2d<r32sint,write>; +@group(0) @binding(9) var texture_storage_2d<r32float,write>; +@group(1) @binding(0) var texture_storage_2d<rg32uint,write>; +@group(1) @binding(1) var texture_storage_2d<rg32sint,write>; +@group(1) @binding(2) var texture_storage_2d<rg32float,write>; +@group(1) @binding(3) var texture_storage_2d<rgba32uint,write>; +@group(1) @binding(4) var texture_storage_2d<rgba32sint,write>; +@group(1) @binding(5) var texture_storage_2d<rgba32float,write>; +@group(1) @binding(6) var texture_storage_2d<bgra8unorm,write>; + +---tokens--- +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba8unorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba8snorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba8uint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'3' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba8sint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'4' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba16uint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba16sint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'6' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba16float' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'7' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'r32uint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'8' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'r32sint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'9' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'r32float' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rg32uint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rg32sint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rg32float' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'3' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba32uint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'4' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba32sint' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'rgba32float' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'@' Name.Decorator +'group' Name.Decorator +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'binding' Name.Decorator +'(' Punctuation +'6' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'var' Keyword.Declaration +' ' Text.Whitespace +'texture_storage_2d' Name.Builtin +'<' Operator +'bgra8unorm' Name.Builtin +',' Punctuation +'write' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/tiny-render.txt b/tests/snippets/wgsl/tiny-render.txt new file mode 100644 index 00000000..9d0fb2f8 --- /dev/null +++ b/tests/snippets/wgsl/tiny-render.txt @@ -0,0 +1,105 @@ +---input--- +@vertex +fn vmain(@location(0) v: vec4<f32>) -> @builtin(position) vec4f { + return v; +} + +@fragment +fn fmain(@builtin(position) pos: vec4f) -> @location(0) vec4f { + return vec4f(0.25,0.25,1.0,1.0); +} + +---tokens--- +'@' Name.Decorator +'vertex' Name.Decorator +'\n' Text.Whitespace + +'fn' Keyword +' ' Text.Whitespace +'vmain' Name +'(' Punctuation +'@' Name.Decorator +'location' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'v' Name +':' Punctuation +' ' Text.Whitespace +'vec4' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +')' Punctuation +' ' Text.Whitespace +'->' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'builtin' Name.Decorator +'(' Punctuation +'position' Name.Builtin +')' Punctuation +' ' Text.Whitespace +'vec4f' Name.Builtin +' ' Text.Whitespace +'{' Punctuation +'\n ' Text.Whitespace +'return' Keyword +' ' Text.Whitespace +'v' Name +';' Punctuation +'\n' Text.Whitespace + +'}' Punctuation +'\n\n' Text.Whitespace + +'@' Name.Decorator +'fragment' Name.Decorator +'\n' Text.Whitespace + +'fn' Keyword +' ' Text.Whitespace +'fmain' Name +'(' Punctuation +'@' Name.Decorator +'builtin' Name.Decorator +'(' Punctuation +'position' Name.Builtin +')' Punctuation +' ' Text.Whitespace +'pos' Name +':' Punctuation +' ' Text.Whitespace +'vec4f' Name.Builtin +')' Punctuation +' ' Text.Whitespace +'->' Punctuation +' ' Text.Whitespace +'@' Name.Decorator +'location' Name.Decorator +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'vec4f' Name.Builtin +' ' Text.Whitespace +'{' Punctuation +'\n ' Text.Whitespace +'return' Keyword +' ' Text.Whitespace +'vec4f' Name.Builtin +'(' Punctuation +'0.25' Literal.Number.Float +',' Punctuation +'0.25' Literal.Number.Float +',' Punctuation +'1.0' Literal.Number.Float +',' Punctuation +'1.0' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n' Text.Whitespace + +'}' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/wgsl/type-generators.txt b/tests/snippets/wgsl/type-generators.txt new file mode 100644 index 00000000..afbb6dbe --- /dev/null +++ b/tests/snippets/wgsl/type-generators.txt @@ -0,0 +1,43 @@ +---input--- +// Test predeclared type generators, other than vector, matrix, and texture. +alias a=array<f32>; +alias b=atomic<i32>; +alias c=ptr<function,i32>; + +---tokens--- +'// Test predeclared type generators, other than vector, matrix, and texture.\n' Comment.Single + +'alias' Keyword +' ' Text.Whitespace +'a' Name +'=' Operator +'array' Name.Builtin +'<' Operator +'f32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'b' Name +'=' Operator +'atomic' Name.Builtin +'<' Operator +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace + +'alias' Keyword +' ' Text.Whitespace +'c' Name +'=' Operator +'ptr' Name.Builtin +'<' Operator +'function' Name.Builtin +',' Punctuation +'i32' Name.Builtin +'>' Operator +';' Punctuation +'\n' Text.Whitespace |