aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Sax <christoph.sax@mailbox.org>2023-07-30 17:23:30 +0200
committerChristian Clason <c.clason@uni-graz.at>2023-07-30 19:29:33 +0200
commit536c8a3880a79492e6d69506b36088ebf4dd2f2a (patch)
treeedec49275195d064df4ace4a4085e48ddbd44796
parentfeat(t32)!: update queries for new HLL node types (diff)
downloadnvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.tar
nvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.tar.gz
nvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.tar.bz2
nvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.tar.lz
nvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.tar.xz
nvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.tar.zst
nvim-treesitter-536c8a3880a79492e6d69506b36088ebf4dd2f2a.zip
feat(t32): re-enable tests
- Switch to GitLab mirror repository - Lock grammar version 2.2.0 - Revert "fix(tests): mark t32 as allowed to fail" This reverts commit ba223ceecc5d66312780c45079b6ae55c406fa96. - Revert "fix(tests): remove t32 tests" This reverts commit 97957a547b93412411ba3a8a9abd27589247c869.
-rw-r--r--lua/nvim-treesitter/parsers.lua4
-rwxr-xr-xscripts/check-queries.lua2
-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.lua123
-rw-r--r--tests/query/highlights/t32/comments.cmm10
-rw-r--r--tests/query/highlights/t32/keywords.cmm108
-rw-r--r--tests/query/highlights/t32/literals.cmm38
-rw-r--r--tests/query/highlights/t32/var.cmm27
11 files changed, 422 insertions, 3 deletions
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 10884fcf4..6c8ab2647 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1510,9 +1510,9 @@ list.systemtap = {
list.t32 = {
install_info = {
- url = "https://codeberg.org/xasc/tree-sitter-t32",
+ url = "https://gitlab.com/xasc/tree-sitter-t32",
files = { "src/parser.c", "src/scanner.c" },
- revision = "767f3c52fe649e4a6ab3551ac287e5b6038c9148",
+ revision = "9d2520ae9886d3a768a352ec80db8762afb5232d",
},
maintainers = { "@xasc" },
}
diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua
index 92a4b4aa8..c142084de 100755
--- a/scripts/check-queries.lua
+++ b/scripts/check-queries.lua
@@ -99,7 +99,7 @@ local function do_check()
end
local ok, result = pcall(do_check)
-local allowed_to_fail = { "t32" } -- codeberg hoster is unreliable
+local allowed_to_fail = vim.split(vim.env.ALLOWED_INSTALLATION_FAILURES or "", ",", true)
for k, v in pairs(require("nvim-treesitter.parsers").get_parser_configs()) do
if not require("nvim-treesitter.parsers").has_parser(k) then
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..b305cd61c
--- /dev/null
+++ b/tests/indent/t32_spec.lua
@@ -0,0 +1,123 @@
+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")
+
+ 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 .. "]"
+ )
+ end
+
+ runner:new_line("if_block.cmm", { on_line = 45, text = "&x=1.", indent = 2 }, "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 .. "]"
+ )
+ end
+
+ runner:new_line("while_block.cmm", { on_line = 2, text = "&x=1.", indent = 2 }, "command after WHILE")
+
+ 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 .. "]"
+ )
+ end
+
+ for ii, test in ipairs {
+ { 1, 0, nil },
+ { 4, 2, XFAIL },
+ } do
+ runner:new_line(
+ "repeat_block.cmm",
+ { on_line = test[1], text = "&x=1.", indent = test[2] },
+ "command after RePeaT[" .. ii .. "]"
+ )
+ 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 .. "]"
+ )
+ 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 .. "]"
+ )
+ 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 .. "]"
+ )
+ end
+ end)
+end)
diff --git a/tests/query/highlights/t32/comments.cmm b/tests/query/highlights/t32/comments.cmm
new file mode 100644
index 000000000..0bab130f6
--- /dev/null
+++ b/tests/query/highlights/t32/comments.cmm
@@ -0,0 +1,10 @@
+// This is a comment
+; <- comment
+
+; Another comment
+; <- comment
+
+ECHO &a // This is a trailing comment
+; ^ comment
+
+// vim: set ft=t32:
diff --git a/tests/query/highlights/t32/keywords.cmm b/tests/query/highlights/t32/keywords.cmm
new file mode 100644
index 000000000..f51786e46
--- /dev/null
+++ b/tests/query/highlights/t32/keywords.cmm
@@ -0,0 +1,108 @@
+PRIVATE &password
+; <- keyword
+; ^ variable.builtin
+ENTRY &password
+; <- keyword
+; ^ parameter
+
+ENTRY %LINE &salt
+; <- keyword
+; ^ constant.builtin
+; ^ parameter
+
+IF "&password"==""
+; <- conditional
+; ^ string
+; ^ variable.builtin
+; ^ operator
+(
+ ECHO "Failed to provide password."
+ ENDDO
+; ^ keyword.return
+)
+ELSE
+; <- conditional
+(
+ PRIVATE &pass
+
+ &pass=FALSE()
+; ^ function.builtin
+ WHILE !&pass
+; ^ operator
+ (
+ GOSUB verify_password "&password"
+; ^ function.call
+ RETURNVALUES &pass
+; ^ parameter
+ WAIT 10.ms
+; ^ number
+ )
+
+ IF !&pass
+ GOTO fail
+; ^ label
+ ELSE
+ (
+ GOSUB start_debug
+; ^ function.call
+ )
+)
+
+LOCAL &num
+; ^ variable.builtin
+
+&num = 2.
+; ^ number
+
+RePeaT &num PRINT "Password: &password"
+; ^ variable.builtin
+; ^ variable.builtin
+
+WinCLEAR
+FramePOS ,,,,Maximized
+; ^ punctuation.delimiter
+; ^ constant
+WinPOS 0% 50% 100% 35%
+; ^ number
+COVerage.ListFunc
+
+ENDDO
+
+
+fail:
+; <- label
+ PRINT %ERROR "Password verification failed."
+ END
+; ^ keyword.return
+
+
+verify_password:
+; <- function
+(
+ PARAMETERS &password
+; ^ parameter
+
+ SYStem.Option.KEYCODE "&password"
+ SYStem.JtagClock 1kHz
+; ^ number
+ SYStem.Mode.Attach
+
+ Data.Set EAXI:0x34000000 %Long 0x34000100 0x34000021 /verify
+; ^ number
+; ^ constant.builtin
+; ^ constant
+
+ RETURN TRUE()
+; ^ keyword.return
+)
+
+
+SUBROUTINE start_debug
+; ^ function
+(
+ Go main
+ RETURN
+; ^ keyword.return
+)
+
+// vim: set ft=t32:
diff --git a/tests/query/highlights/t32/literals.cmm b/tests/query/highlights/t32/literals.cmm
new file mode 100644
index 000000000..b1662639b
--- /dev/null
+++ b/tests/query/highlights/t32/literals.cmm
@@ -0,0 +1,38 @@
+WinPOS ,,1000.,,,,myWatchWindow
+; ^ number
+
+PRinTer.OPEN "~~~/varwatch.txt" ASCIIE
+; ^ string
+
+sYmbol.NEW _InitialSP 0x34000100
+; ^ number
+
+DO ~~~~/test.cmm
+; ^ string.special
+
+WAIT 1.ns
+; ^ number
+
+SYStem.JtagClock 100.GHZ
+; ^ number
+
+DATA.SET P:&HEAD+0x4 %LONG DATA.LONG(EA:&HEAD+0x4)&0xFFFFFF
+; ^ number
+
+List `main`
+; ^ symbol
+
+&range = 'a'--'z'||'0'--'9'
+; ^ character
+; ^ operator
+; ^ character
+
+Data.Set N: 0xffff800000 0y0011xx01xx&&a
+; ^ number
+; ^ number
+; ^ operator
+
+WinPOS 0% 85% 100% 15%
+; ^ number
+
+// vim: set ft=t32:
diff --git a/tests/query/highlights/t32/var.cmm b/tests/query/highlights/t32/var.cmm
new file mode 100644
index 000000000..a2d6f9b2a
--- /dev/null
+++ b/tests/query/highlights/t32/var.cmm
@@ -0,0 +1,27 @@
+Var.NEWGLOBAL char[4][32] \myarr
+; <- keyword
+; ^ type
+; ^ variable.builtin
+LOCAL &i &data
+
+&data="zero|one|two|three"
+
+&i=0.
+WHILE &i<4
+(
+ PRIVATE &val
+ &val=STRing.SPLIT("&data","|",&i)
+ Var.Assign \myarr[&i]="&val"
+; ^ variable.builtin
+ &i=&i+1.
+)
+
+Var.NEWLOCAL \x
+; <- keyword
+; ^ variable.builtin
+Var.set \x=func3(5,3)
+; ^ variable.builtin
+PRINT Var.VALUE(\x)
+; ^ variable.builtin
+
+// vim: set ft=t32: