diff options
| author | Pham Huy Hoang <hoangtun0810@gmail.com> | 2023-04-13 01:42:53 +0900 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2023-04-14 02:28:42 -0700 |
| commit | 36d4deb294fb0cd4385d58d8c9f603975bf355ad (patch) | |
| tree | ae2ea4eb88fb81cbee4c9624b47de164ca9dfd41 | |
| parent | chore(dart): remove tests for switch (diff) | |
| download | nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.tar nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.tar.gz nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.tar.bz2 nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.tar.lz nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.tar.xz nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.tar.zst nvim-treesitter-36d4deb294fb0cd4385d58d8c9f603975bf355ad.zip | |
fix(dart_indent): Fix dart case/default indent
add tests
add tests for fallthrough case
add more tests
keep functional tests
| -rw-r--r-- | queries/dart/indents.scm | 10 | ||||
| -rw-r--r-- | tests/indent/dart/switch.dart | 30 | ||||
| -rw-r--r-- | tests/indent/dart_spec.lua | 11 |
3 files changed, 49 insertions, 2 deletions
diff --git a/queries/dart/indents.scm b/queries/dart/indents.scm index 9616f0629..77259aef7 100644 --- a/queries/dart/indents.scm +++ b/queries/dart/indents.scm @@ -13,6 +13,13 @@ (try_statement) ] @indent.begin +(switch_block + (_) @indent.begin + (#set! indent.immediate 1) + (#set! indent.start_at_same_line 1)) + +(switch_label) @indent.branch + [ "(" ")" @@ -26,6 +33,9 @@ "}" ] @indent.end +(return_statement ";" @indent.end) +(break_statement ";" @indent.end) + ; this one is for dedenting the else block (if_statement (block) @indent.branch) diff --git a/tests/indent/dart/switch.dart b/tests/indent/dart/switch.dart new file mode 100644 index 000000000..489c7b22a --- /dev/null +++ b/tests/indent/dart/switch.dart @@ -0,0 +1,30 @@ +void test() { + switch(a) { + case 1: + } +} + +void test() { + switch(a) { + default: + } +} + +void test_break_dedent() { + switch(x) { + case 1: + break; + } + switch(y) { + case 2: + return; + } +} + + +void test_multi_case() { + switch(x) { + case 1: + case 2: + } +} diff --git a/tests/indent/dart_spec.lua b/tests/indent/dart_spec.lua index 0241e531f..f3c360cbe 100644 --- a/tests/indent/dart_spec.lua +++ b/tests/indent/dart_spec.lua @@ -2,9 +2,9 @@ local Runner = require("tests.indent.common").Runner local XFAIL = require("tests.indent.common").XFAIL local run = Runner:new(it, "tests/indent/dart", { - tabstop = 4, + tabstop = 2, shiftwidth = 2, - softtabstop = 0, + softtabstop = 2, expandtab = true, }) @@ -25,6 +25,13 @@ describe("new line:", function() run:new_line("class.dart", { on_line = 6, text = "'100'", indent = 8 }, "expected failure", XFAIL) run:new_line("class.dart", { on_line = 7, text = "int five = 5", indent = 2 }, "expected failure", XFAIL) run:new_line("try.dart", { on_line = 2, text = "var x;", indent = 4 }) + run:new_line("switch.dart", { on_line = 3, text = "x = 1;", indent = 6 }) + run:new_line("switch.dart", { on_line = 9, text = "x = 1;", indent = 6 }) + run:new_line("switch.dart", { on_line = 3, text = "case 2:", indent = 4 }) + run:new_line("switch.dart", { on_line = 16, text = "abc;", indent = 4 }) + run:new_line("switch.dart", { on_line = 20, text = "abc;", indent = 4 }) + run:new_line("switch.dart", { on_line = 28, text = "y++;", indent = 6 }) + run:new_line("multiple_arguments.dart", { on_line = 10, text = "var x;", indent = 4 }) run:new_line( "multiple_arguments.dart", |
