local Runner = require("tests.indent.common").Runner local run = Runner:new(it, "tests/indent/rust", { tabstop = 4, shiftwidth = 4, softtabstop = 0, expandtab = true, }) describe("indent Rust:", function() describe("whole file:", function() run:whole_file "." end) describe("new line:", function() run:new_line("array.rs", { on_line = 2, text = "0,", indent = 4 }) run:new_line("array.rs", { on_line = 8, text = "0,", indent = 8 }) run:new_line("comment.rs", { on_line = 3, text = "a", indent = "/// " }) run:new_line("comment.rs", { on_line = 10, text = "a", indent = " /// " }) run:new_line("cond.rs", { on_line = 11, text = "x += 1;", indent = 12 }) run:new_line("cond.rs", { on_line = 2, text = "x += 1;", indent = 8 }) run:new_line("cond.rs", { on_line = 4, text = "x += 1;", indent = 8 }) run:new_line("cond.rs", { on_line = 6, text = "x += 1;", indent = 8 }) run:new_line("cond.rs", { on_line = 8, text = "x += 1;", indent = 4 }) run:new_line("enum.rs", { on_line = 2, text = "Q,", indent = 4 }) run:new_line("enum.rs", { on_line = 4, text = "i32,", indent = 8 }) run:new_line("enum.rs", { on_line = 8, text = "z: u32,", indent = 8 }) run:new_line("enum.rs", { on_line = 11, text = "let _x = 1;", indent = 0 }) run:new_line("func.rs", { on_line = 1, text = "let _x = 1;", indent = 4 }) run:new_line("func.rs", { on_line = 3, text = "let _x = 1;", indent = 0 }) run:new_line("func.rs", { on_line = 6, text = "z: i32,", indent = 4 }) run:new_line("impl.rs", { on_line = 3, text = "const FOO: u32 = 1;", indent = 4 }) run:new_line("impl.rs", { on_line = 4, text = "let _x = 1;", indent = 8 }) run:new_line("impl.rs", { on_line = 6, text = "let _x = 1;", indent = 4 }) run:new_line("impl.rs", { on_line = 7, text = "let _x = 1;", indent = 0 }) run:new_line("loop.rs", { on_line = 10, text = "x += 1;", indent = 8 }) run:new_line("loop.rs", { on_line = 2, text = "x += 1;", indent = 8 }) run:new_line("loop.rs", { on_line = 6, text = "x += 1;", indent = 8 }) run:new_line("macro.rs", { on_line = 1, text = "() => {},", indent = 4 }) run:new_line("macro.rs", { on_line = 12, text = "B C", indent = 4 }) run:new_line("macro.rs", { on_line = 2, text = "struct $c;", indent = 8 }) run:new_line("match.rs", { on_line = 2, text = "-1 => -1,", indent = 8 }) run:new_line("match.rs", { on_line = 7, text = "let y = 1;", indent = 12 }) run:new_line("match.rs", { on_line = 10, text = "let y = 1;", indent = 4 }) run:new_line("mod.rs", { on_line = 1, text = "const Z: i32 = 1;", indent = 4 }) run:new_line("mod.rs", { on_line = 2, text = "const Z: i32 = 1;", indent = 4 }) run:new_line("mod.rs", { on_line = 6, text = "const Z: i32 = 1;", indent = 8 }) run:new_line("mod.rs", { on_line = 7, text = "const Z: i32 = 1;", indent = 4 }) run:new_line("string.rs", { on_line = 2, text = "brave new", indent = 0 }) run:new_line("string.rs", { on_line = 5, text = "brave new \\", indent = 8 }) run:new_line("string.rs", { on_line = 9, text = "brave new \\", indent = 8 }) run:new_line("struct.rs", { on_line = 1, text = "z: i32,", indent = 4 }) run:new_line("struct.rs", { on_line = 2, text = "z: i32,", indent = 4 }) run:new_line("struct.rs", { on_line = 4, text = "let y = 1;", indent = 0 }) run:new_line("trait.rs", { on_line = 4, text = "fn baz();", indent = 4 }) run:new_line("trait.rs", { on_line = 5, text = "let y = 1;", indent = 0 }) run:new_line("trait.rs", { on_line = 7, text = "fn baz();", indent = 4 }) run:new_line("trait.rs", { on_line = 8, text = "()", indent = 8 }) run:new_line("where.rs", { on_line = 17, text = "T: Debug,", indent = 4 }) run:new_line("where.rs", { on_line = 2, text = "T: Debug,", indent = 4 }) run:new_line("where.rs", { on_line = 9, text = "T: Debug,", indent = 4 }) end) end)