aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--queries/wgsl/indents.scm19
-rw-r--r--tests/indent/wgsl/basic.wgsl43
-rw-r--r--tests/indent/wgsl_spec.lua19
3 files changed, 81 insertions, 0 deletions
diff --git a/queries/wgsl/indents.scm b/queries/wgsl/indents.scm
new file mode 100644
index 000000000..69e543ad3
--- /dev/null
+++ b/queries/wgsl/indents.scm
@@ -0,0 +1,19 @@
+[
+ (parameter_list)
+ (compound_statement)
+ (loop_statement)
+ (struct_declaration)
+] @indent
+
+(compound_statement "}" @indent_end)
+(loop_statement "}" @indent_end)
+(function_declaration ")" @indent_end)
+(struct_declaration "}" @indent_end)
+
+[
+ "else"
+ ")"
+ "}"
+] @branch
+
+(comment) @auto
diff --git a/tests/indent/wgsl/basic.wgsl b/tests/indent/wgsl/basic.wgsl
new file mode 100644
index 000000000..7dd50f87e
--- /dev/null
+++ b/tests/indent/wgsl/basic.wgsl
@@ -0,0 +1,43 @@
+struct Vertex {
+ @location(0) position: vec3<f32>,
+ @location(1) color: vec4<f32>,
+};
+
+@vertex
+fn vertex(vertex: Vertex) -> VertexOutput {
+ var out: VertexOutput;
+ out.a = 1;
+ if (1) {
+ out.a = 3;
+ }
+ if (2) {
+ dsa;
+ }
+
+ loop {
+ if (i >= 4) { break; }
+ }
+ out.b = 2;
+ return out;
+}
+
+@vertex
+fn vertex(vertex: Vertex,
+ foo: dso,
+ foo: dsa
+) -> VertexOutput {
+ var out: VertexOutput;
+ out.a = 1;
+ out.b = 2;
+ return out;
+}
+
+@vertex
+fn vertex(vertex: Vertex,
+ foo: dso,
+ foo: dsa) -> VertexOutput {
+ var out: VertexOutput;
+ out.a = 1;
+ out.b = 2;
+ return out;
+}
diff --git a/tests/indent/wgsl_spec.lua b/tests/indent/wgsl_spec.lua
new file mode 100644
index 000000000..4ffdbbda0
--- /dev/null
+++ b/tests/indent/wgsl_spec.lua
@@ -0,0 +1,19 @@
+local Runner = require("tests.indent.common").Runner
+--local XFAIL = require("tests.indent.common").XFAIL
+
+local run = Runner:new(it, "tests/indent/wgsl", {
+ tabstop = 4,
+ shiftwidth = 4,
+ softtabstop = 0,
+ expandtab = true,
+})
+
+describe("indent WGSL:", function()
+ describe("whole file:", function()
+ run:whole_file(".", {
+ expected_failures = {},
+ })
+ end)
+
+ describe("new line:", function() end)
+end)