aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPham Huy Hoang <hoangtun0810@gmail.com>2023-01-10 14:04:27 +0900
committerStephan Seitz <stephan.seitz@fau.de>2023-01-14 04:52:21 -0800
commit2f5deed45628e4960fabfe28735d73a82eb59d98 (patch)
treeec34faafb04329337a6aed57d1eb651bbeb3f4ed /tests
parenthighlights(kotlin): package keyword and declaration (diff)
downloadnvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.tar
nvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.tar.gz
nvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.tar.bz2
nvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.tar.lz
nvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.tar.xz
nvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.tar.zst
nvim-treesitter-2f5deed45628e4960fabfe28735d73a82eb59d98.zip
indents(c): Refactor indent queries
Diffstat (limited to 'tests')
-rw-r--r--tests/indent/c/if_else.c60
-rw-r--r--tests/indent/c/issue-4079.c7
-rw-r--r--tests/indent/c/issue-4117.c6
-rw-r--r--tests/indent/c/no_braces.c1
-rw-r--r--tests/indent/c_spec.lua32
5 files changed, 103 insertions, 3 deletions
diff --git a/tests/indent/c/if_else.c b/tests/indent/c/if_else.c
new file mode 100644
index 000000000..0a81b3594
--- /dev/null
+++ b/tests/indent/c/if_else.c
@@ -0,0 +1,60 @@
+int foo(int x){
+ if (x > 10)
+ return 10;
+
+ if (x > 10)
+ return 10;
+ else
+ return 10;
+
+ if (x > 20)
+ return 20;
+ else if (x > 15)
+ return 15;
+ else
+ return 10;
+}
+
+int bar(int x){
+ if (x > 20)
+ return 10;
+ else {
+ return 10;
+ }
+
+ if (x > 20)
+ return 10;
+ else if (x > 10) {
+ return 10;
+ }
+}
+
+int baz(int x){
+ if (x > 20)
+ return x;
+ else if(x > 10) {
+ if(x > 10) {
+ if(x > 10)
+ return 10;
+ if(x > 5) {
+ return 5;
+ }
+ }
+ }
+
+ if (x > 20)
+ if (x > 19)
+ if(x > 18)
+ return x;
+
+ if (x > 20)
+ return x;
+ else if (x > 19) {
+ if (x > 18)
+ return x;
+ else
+ x++;
+ }
+ else
+ return x;
+}
diff --git a/tests/indent/c/issue-4079.c b/tests/indent/c/issue-4079.c
new file mode 100644
index 000000000..fd1490c8f
--- /dev/null
+++ b/tests/indent/c/issue-4079.c
@@ -0,0 +1,7 @@
+int main(){
+ for(;;)
+}
+
+int foo(){
+ while(1)
+}
diff --git a/tests/indent/c/issue-4117.c b/tests/indent/c/issue-4117.c
new file mode 100644
index 000000000..12e05c63d
--- /dev/null
+++ b/tests/indent/c/issue-4117.c
@@ -0,0 +1,6 @@
+int main(){
+ if(1){
+ }
+ else {
+ }
+}
diff --git a/tests/indent/c/no_braces.c b/tests/indent/c/no_braces.c
index 544ac01d0..9cc63989d 100644
--- a/tests/indent/c/no_braces.c
+++ b/tests/indent/c/no_braces.c
@@ -10,3 +10,4 @@ int foo(int x) {
for (int i = 0; i < 3; ++i)
x--;
}
+
diff --git a/tests/indent/c_spec.lua b/tests/indent/c_spec.lua
index 040ca9a23..6d5db4aab 100644
--- a/tests/indent/c_spec.lua
+++ b/tests/indent/c_spec.lua
@@ -38,9 +38,35 @@ describe("indent C:", function()
runner:new_line("ternary.c", { on_line = 4, text = ": (x == 0) : 0", indent = 8 })
runner:new_line("issue-1568.c", { on_line = 4, text = "x++;", indent = 8 })
runner:new_line("issue-2086.c", { on_line = 3, text = "}", indent = 0 })
+ runner:new_line("issue-4079.c", { on_line = 2, text = "return;", indent = 8 })
+ runner:new_line("issue-4079.c", { on_line = 2, text = "{", indent = 4 })
+ runner:new_line("issue-4079.c", { on_line = 6, text = "{", indent = 4 })
-- the line after inserted one will be left with wrong indent but we only care about the inserted one
- runner:new_line("no_braces.c", { on_line = 4, text = "x++;", indent = 8 })
- runner:new_line("no_braces.c", { on_line = 7, text = "x++;", indent = 8 })
- runner:new_line("no_braces.c", { on_line = 10, text = "x++;", indent = 8 })
+ for _, line in ipairs { 2, 4, 7, 10 } do
+ runner:new_line("no_braces.c", { on_line = line, text = "x++;", indent = 8 })
+ end
+ for _, line in ipairs { 2, 5, 7, 10, 12, 14, 20, 22, 25, 27, 28, 33 } do
+ runner:new_line("if_else.c", { on_line = line, text = "x++;", indent = 8 })
+ end
+ for _, line in ipairs { 3, 6, 8, 13, 15, 20, 23 } do
+ runner:new_line("if_else.c", { on_line = line, text = "else", indent = 4 })
+ end
+ for _, info in ipairs {
+ { 36, 12 },
+ { 37, 16 },
+ { 38, 12 },
+ { 39, 16 },
+ { 41, 12 },
+ { 42, 8 },
+ { 45, 8 },
+ { 46, 12 },
+ { 47, 16 },
+ { 48, 4 },
+ { 52, 8 },
+ { 53, 12 },
+ { 54, 12 },
+ } do
+ runner:new_line("if_else.c", { on_line = info[1], text = "x++;", indent = info[2] })
+ end
end)
end)