From 3c1d70f20b5d5bad3bec121e589187d15f325a9b Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Mon, 25 Jul 2022 12:23:04 +0200 Subject: feat(treesitter): allow customizing language symbol name --- test/functional/treesitter/language_spec.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'test/functional/treesitter/language_spec.lua') diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua index 30585be328..5eb72471c3 100644 --- a/test/functional/treesitter/language_spec.lua +++ b/test/functional/treesitter/language_spec.lua @@ -10,7 +10,7 @@ local pending_c_parser = helpers.pending_c_parser before_each(clear) -describe('treesitter API', function() +describe('treesitter language API', function() -- error tests not requiring a parser library it('handles missing language', function() eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers", @@ -26,6 +26,9 @@ describe('treesitter API', function() eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers", pcall_err(exec_lua, "parser = vim.treesitter.inspect_language('borklang')")) + + matches("Error executing lua: Failed to load parser: uv_dlsym: .+", + pcall_err(exec_lua, "parser = vim.treesitter.require_language('c', nil, false, 'borklang')")) end) it('inspects language', function() -- cgit From 26ebf67c39d3776095706fafe34eea2e37013579 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Wed, 24 Aug 2022 16:22:50 +0200 Subject: test(treesitter): make internal lang test pending when necessary --- test/functional/treesitter/language_spec.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'test/functional/treesitter/language_spec.lua') diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua index 5eb72471c3..8aa8524a26 100644 --- a/test/functional/treesitter/language_spec.lua +++ b/test/functional/treesitter/language_spec.lua @@ -27,8 +27,10 @@ describe('treesitter language API', function() eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers", pcall_err(exec_lua, "parser = vim.treesitter.inspect_language('borklang')")) - matches("Error executing lua: Failed to load parser: uv_dlsym: .+", - pcall_err(exec_lua, "parser = vim.treesitter.require_language('c', nil, false, 'borklang')")) + if not pending_c_parser(pending) then + matches("Error executing lua: Failed to load parser: uv_dlsym: .+", + pcall_err(exec_lua, 'vim.treesitter.require_language("c", nil, false, "borklang")')) + end end) it('inspects language', function() -- cgit From 6b2d42eb0352d01923e4bf2e3ce0824c662b7be4 Mon Sep 17 00:00:00 2001 From: Quentin Rasmont Date: Sat, 30 Apr 2022 10:43:26 +0200 Subject: feat(treesitter): add ability to retreive a tree/node given a range --- test/functional/treesitter/language_spec.lua | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'test/functional/treesitter/language_spec.lua') diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua index 8aa8524a26..b66a56264f 100644 --- a/test/functional/treesitter/language_spec.lua +++ b/test/functional/treesitter/language_spec.lua @@ -7,6 +7,7 @@ local exec_lua = helpers.exec_lua local pcall_err = helpers.pcall_err local matches = helpers.matches local pending_c_parser = helpers.pending_c_parser +local insert = helpers.insert before_each(clear) @@ -84,5 +85,33 @@ describe('treesitter language API', function() eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers", pcall_err(exec_lua, "new_parser = vim.treesitter.get_parser(0)")) end) + + it('retrieve the tree given a range', function () + insert([[ + int main() { + int x = 3; + }]]) + + exec_lua([[ + langtree = vim.treesitter.get_parser(0, "c") + tree = langtree:tree_for_range({1, 3, 1, 3}) + ]]) + + eq('', exec_lua('return tostring(tree:root())')) + end) + + it('retrieve the node given a range', function () + insert([[ + int main() { + int x = 3; + }]]) + + exec_lua([[ + langtree = vim.treesitter.get_parser(0, "c") + node = langtree:named_node_for_range({1, 3, 1, 3}) + ]]) + + eq('', exec_lua('return tostring(node)')) + end) end) -- cgit From 73ee2b35d1fc738be9bd4b99f49ce8f84351fbe6 Mon Sep 17 00:00:00 2001 From: bfredl Date: Thu, 25 Aug 2022 20:49:27 +0200 Subject: fix(tests): use pending_c_parser when needed --- test/functional/treesitter/language_spec.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'test/functional/treesitter/language_spec.lua') diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua index b66a56264f..8e9941d797 100644 --- a/test/functional/treesitter/language_spec.lua +++ b/test/functional/treesitter/language_spec.lua @@ -87,6 +87,7 @@ describe('treesitter language API', function() end) it('retrieve the tree given a range', function () + if pending_c_parser(pending) then return end insert([[ int main() { int x = 3; @@ -101,6 +102,7 @@ describe('treesitter language API', function() end) it('retrieve the node given a range', function () + if pending_c_parser(pending) then return end insert([[ int main() { int x = 3; -- cgit From 6254b0fd3bc725705020192dc9e35635136b9929 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 4 Sep 2022 16:13:37 +0200 Subject: ci(tests): don't skip parsers on functionaltest Treesitter parsers are now a mandatory part of the installation and should be tested on all platforms. Remove `pending_c_parser` helper. --- test/functional/treesitter/language_spec.lua | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'test/functional/treesitter/language_spec.lua') diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua index 8e9941d797..ed84dedb5a 100644 --- a/test/functional/treesitter/language_spec.lua +++ b/test/functional/treesitter/language_spec.lua @@ -6,7 +6,6 @@ local command = helpers.command local exec_lua = helpers.exec_lua local pcall_err = helpers.pcall_err local matches = helpers.matches -local pending_c_parser = helpers.pending_c_parser local insert = helpers.insert before_each(clear) @@ -28,15 +27,11 @@ describe('treesitter language API', function() eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers", pcall_err(exec_lua, "parser = vim.treesitter.inspect_language('borklang')")) - if not pending_c_parser(pending) then - matches("Error executing lua: Failed to load parser: uv_dlsym: .+", - pcall_err(exec_lua, 'vim.treesitter.require_language("c", nil, false, "borklang")')) - end + matches("Error executing lua: Failed to load parser: uv_dlsym: .+", + pcall_err(exec_lua, 'vim.treesitter.require_language("c", nil, false, "borklang")')) end) it('inspects language', function() - if pending_c_parser(pending) then return end - local keys, fields, symbols = unpack(exec_lua([[ local lang = vim.treesitter.inspect_language('c') local keys, symbols = {}, {} @@ -76,7 +71,6 @@ describe('treesitter language API', function() end) it('checks if vim.treesitter.get_parser tries to create a new parser on filetype change', function () - if pending_c_parser(pending) then return end command("set filetype=c") -- Should not throw an error when filetype is c eq('c', exec_lua("return vim.treesitter.get_parser(0):lang()")) @@ -87,7 +81,6 @@ describe('treesitter language API', function() end) it('retrieve the tree given a range', function () - if pending_c_parser(pending) then return end insert([[ int main() { int x = 3; @@ -102,7 +95,6 @@ describe('treesitter language API', function() end) it('retrieve the node given a range', function () - if pending_c_parser(pending) then return end insert([[ int main() { int x = 3; -- cgit