aboutsummaryrefslogtreecommitdiffstats
path: root/tests/indent
diff options
context:
space:
mode:
authorChristoph Sax <xasc@users.noreply.github.com>2023-05-18 09:40:13 +0200
committerGitHub <noreply@github.com>2023-05-18 16:40:13 +0900
commit16cce8df58b83b328e8448087308e3a90da6fa17 (patch)
tree4b688a5cc62bc33a3700445973e1852447bb52f3 /tests/indent
parentfixup: use correct require syntax (diff)
downloadnvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.tar
nvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.tar.gz
nvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.tar.bz2
nvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.tar.lz
nvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.tar.xz
nvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.tar.zst
nvim-treesitter-16cce8df58b83b328e8448087308e3a90da6fa17.zip
feat(t32): add indent rules (#4782)
Diffstat (limited to 'tests/indent')
-rw-r--r--tests/indent/t32/if_block.cmm49
-rw-r--r--tests/indent/t32/repeat_block.cmm27
-rw-r--r--tests/indent/t32/subroutine_block.cmm23
-rw-r--r--tests/indent/t32/while_block.cmm14
-rw-r--r--tests/indent/t32_spec.lua130
5 files changed, 243 insertions, 0 deletions
diff --git a/tests/indent/t32/if_block.cmm b/tests/indent/t32/if_block.cmm
new file mode 100644
index 000000000..e85b5e714
--- /dev/null
+++ b/tests/indent/t32/if_block.cmm
@@ -0,0 +1,49 @@
+IF &a
+ STOP
+
+IF (TRUE())
+(
+ BREAK
+)
+
+IF (&b+CouNT())
+(
+ continue
+)
+
+IF FOUND()
+ STOP
+ELSE
+ CONTinue
+
+IF &c
+ CONTinue
+ELSE IF FALSE()
+ Break
+ELSE
+ stop
+
+IF &d
+(
+ STOP
+)
+ELSE IF &e
+; comment A
+(
+ CONTINUE
+)
+ELSE
+; comment B
+(
+ BREAK
+)
+
+IF &f
+ IF &g
+ stop
+ ELSE
+ IF &h
+ (
+ continue
+ )
+
diff --git a/tests/indent/t32/repeat_block.cmm b/tests/indent/t32/repeat_block.cmm
new file mode 100644
index 000000000..6384183dc
--- /dev/null
+++ b/tests/indent/t32/repeat_block.cmm
@@ -0,0 +1,27 @@
+RePeaT 10. PRINT "A"
+
+RePeaT &a
+ print
+
+REPEAT 0xaAfF09
+(
+ cont
+)
+
+RPT
+(
+ b
+)
+
+rpt
+(
+ s
+)
+WHILE &a
+
+REPEAT TRUE()
+; comment
+(
+ cont
+)
+
diff --git a/tests/indent/t32/subroutine_block.cmm b/tests/indent/t32/subroutine_block.cmm
new file mode 100644
index 000000000..24891c609
--- /dev/null
+++ b/tests/indent/t32/subroutine_block.cmm
@@ -0,0 +1,23 @@
+printA:
+(
+ PRINT "A"
+ RETURN
+)
+
+sUBROUtINE printB
+(
+ ENTRY &in
+
+ PRINT "&in"
+ RETURN
+)
+
+SUBROUTINE printC
+// comment
+(
+ PARAMETERS &a &b
+
+ PRINT "&a"+"&b"
+ ENDDO
+)
+
diff --git a/tests/indent/t32/while_block.cmm b/tests/indent/t32/while_block.cmm
new file mode 100644
index 000000000..bfcbd45db
--- /dev/null
+++ b/tests/indent/t32/while_block.cmm
@@ -0,0 +1,14 @@
+WHILE &a
+ Step
+
+WHILE (sYmbol.EXIT(main))
+(
+ Step
+ Break
+)
+
+WHILE (FALSE())
+// comment
+(
+ ECHO "test"
+)
diff --git a/tests/indent/t32_spec.lua b/tests/indent/t32_spec.lua
new file mode 100644
index 000000000..8ab31387d
--- /dev/null
+++ b/tests/indent/t32_spec.lua
@@ -0,0 +1,130 @@
+local Runner = require("tests.indent.common").Runner
+local XFAIL = require("tests.indent.common").XFAIL
+
+local runner = Runner:new(it, "tests/indent/t32", {
+ tabstop = 2,
+ shiftwidth = 2,
+ softtabstop = 0,
+ expandtab = true,
+})
+
+describe("indent t32:", function()
+ describe("whole file:", function()
+ runner:whole_file "."
+ end)
+
+ describe("new line:", function()
+ runner:new_line("if_block.cmm", { on_line = 2, text = "GOTO start", indent = 0 }, "command after IF", XFAIL)
+
+ runner:new_line("if_block.cmm", { on_line = 5, text = "GOTO start", indent = 2 }, "command in IF then block", XFAIL)
+
+ runner:new_line("if_block.cmm", { on_line = 4, text = "(", indent = 0 }, "block after IF")
+
+ for ii, test in ipairs {
+ { 1, 2 },
+ { 14, 2 },
+ { 19, 2 },
+ { 21, 2 },
+ { 41, 2 },
+ { 42, 4 },
+ } do
+ runner:new_line(
+ "if_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command in IF then[" .. ii .. "]",
+ XFAIL
+ )
+ end
+
+ runner:new_line("if_block.cmm", { on_line = 45, text = "&x=1.", indent = 4 }, "command in IF then")
+
+ for ii, test in ipairs {
+ { 16, 2 },
+ { 21, 2 },
+ { 23, 2 },
+ { 44, 4 },
+ } do
+ runner:new_line(
+ "if_block.cmm",
+ { on_line = test[1], text = "(\n", indent = test[2] },
+ "command in IF else[" .. ii .. "]",
+ XFAIL
+ )
+ end
+
+ runner:new_line("while_block.cmm", { on_line = 2, text = "&x=1.", indent = 0 }, "command after WHILE", XFAIL)
+
+ runner:new_line("while_block.cmm", { on_line = 4, text = "&x=1.", indent = 0 }, "command after WHILE")
+
+ runner:new_line("while_block.cmm", { on_line = 1, text = "(\n", indent = 0 }, "block in WHILE then")
+
+ for ii, test in ipairs {
+ { 5, 2 },
+ { 12, 2 },
+ } do
+ runner:new_line(
+ "while_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command in WHILE then block[" .. ii .. "]",
+ XFAIL
+ )
+ end
+
+ for ii, test in ipairs {
+ { 1, 0, nil },
+ { 4, 0, XFAIL },
+ } do
+ runner:new_line(
+ "repeat_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command after RePeaT[" .. ii .. "]",
+ test[3]
+ )
+ end
+
+ runner:new_line("repeat_block.cmm", { on_line = 3, text = "(\n", indent = 0 }, "block in RePeaT then")
+
+ for ii, test in ipairs {
+ { 7, 2, XFAIL },
+ { 18, 2, nil },
+ { 24, 2, XFAIL },
+ } do
+ runner:new_line(
+ "repeat_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command in RePeaT then block[" .. ii .. "]",
+ test[3]
+ )
+ end
+
+ runner:new_line("subroutine_block.cmm", { on_line = 1, text = "(\n", indent = 0 }, "block after call label")
+
+ for ii, test in ipairs {
+ { 2, 2, XFAIL },
+ { 3, 2, nil },
+ { 8, 2, XFAIL },
+ { 12, 2, nil },
+ { 19, 2, XFAIL },
+ } do
+ runner:new_line(
+ "subroutine_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command in subroutine block[" .. ii .. "]",
+ test[3]
+ )
+ end
+
+ for ii, test in ipairs {
+ { 5, 2 },
+ { 13, 2 },
+ { 23, 2 },
+ } do
+ runner:new_line(
+ "subroutine_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command after subroutine block[" .. ii .. "]",
+ XFAIL
+ )
+ end
+ end)
+end)