aboutsummaryrefslogtreecommitdiff
path: root/test/functional/treesitter/language_spec.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-07-29 11:20:15 +0100
committerLewis Russell <me@lewisr.dev>2024-08-02 19:04:37 +0100
commit7d24c4d6b0413cd5af8d0579f0a9a694db7f775e (patch)
treed9954c2001fe512c60a76561e7a19566b9de638b /test/functional/treesitter/language_spec.lua
parentf32557ca679cbb1d7de52ab54dc35585af9ab9d0 (diff)
downloadrneovim-7d24c4d6b0413cd5af8d0579f0a9a694db7f775e.tar.gz
rneovim-7d24c4d6b0413cd5af8d0579f0a9a694db7f775e.tar.bz2
rneovim-7d24c4d6b0413cd5af8d0579f0a9a694db7f775e.zip
test: allow exec_lua to handle functions
Problem: Tests have lots of exec_lua calls which input blocks of code provided as unformatted strings. Solution: Teach exec_lua how to handle functions.
Diffstat (limited to 'test/functional/treesitter/language_spec.lua')
-rw-r--r--test/functional/treesitter/language_spec.lua50
1 files changed, 28 insertions, 22 deletions
diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua
index e71c39244f..ba2d2218e3 100644
--- a/test/functional/treesitter/language_spec.lua
+++ b/test/functional/treesitter/language_spec.lua
@@ -54,10 +54,10 @@ describe('treesitter language API', function()
end)
it('inspects language', function()
- local keys, fields, symbols = unpack(exec_lua([[
+ local keys, fields, symbols = unpack(exec_lua(function()
local lang = vim.treesitter.language.inspect('c')
local keys, symbols = {}, {}
- for k,_ in pairs(lang) do
+ for k, _ in pairs(lang) do
keys[k] = true
end
@@ -66,8 +66,8 @@ describe('treesitter language API', function()
for _, v in pairs(lang.symbols) do
table.insert(symbols, v)
end
- return {keys, lang.fields, symbols}
- ]]))
+ return { keys, lang.fields, symbols }
+ end))
eq({ fields = true, symbols = true, _abi_version = true }, keys)
@@ -113,12 +113,14 @@ describe('treesitter language API', function()
int x = 3;
}]])
- exec_lua([[
- langtree = vim.treesitter.get_parser(0, "c")
- tree = langtree:tree_for_range({1, 3, 1, 3})
- ]])
-
- eq('<node translation_unit>', exec_lua('return tostring(tree:root())'))
+ eq(
+ '<node translation_unit>',
+ exec_lua(function()
+ local langtree = vim.treesitter.get_parser(0, 'c')
+ local tree = langtree:tree_for_range({ 1, 3, 1, 3 })
+ return tostring(tree:root())
+ end)
+ )
end)
it('retrieve the tree given a range when range is out of bounds relative to buffer', function()
@@ -127,12 +129,14 @@ describe('treesitter language API', function()
int x = 3;
}]])
- exec_lua([[
- langtree = vim.treesitter.get_parser(0, "c")
- tree = langtree:tree_for_range({10, 10, 10, 10})
- ]])
-
- eq('<node translation_unit>', exec_lua('return tostring(tree:root())'))
+ eq(
+ '<node translation_unit>',
+ exec_lua(function()
+ local langtree = vim.treesitter.get_parser(0, 'c')
+ local tree = langtree:tree_for_range({ 10, 10, 10, 10 })
+ return tostring(tree:root())
+ end)
+ )
end)
it('retrieve the node given a range', function()
@@ -141,12 +145,14 @@ describe('treesitter language API', function()
int x = 3;
}]])
- exec_lua([[
- langtree = vim.treesitter.get_parser(0, "c")
- node = langtree:named_node_for_range({1, 3, 1, 3})
- ]])
-
- eq('<node primitive_type>', exec_lua('return tostring(node)'))
+ eq(
+ '<node primitive_type>',
+ exec_lua(function()
+ local langtree = vim.treesitter.get_parser(0, 'c')
+ local node = langtree:named_node_for_range({ 1, 3, 1, 3 })
+ return tostring(node)
+ end)
+ )
end)
it('retrieve an anonymous node given a range', function()