sniprun
sniprun copied to clipboard
Lua-original used for code containing `vim`
Describe the bug Same as title
To Reproduce
- copy this code sample:
---@generic TResult
---@return TResult[]
---@param iterator fun(self: any? ): fun(): TResult
---@param source any?
local function collect(iterator, source)
local ret = {}
for element in iterator(source) do
table.insert(ret, element)
end
return ret
end
---collect all children of a node recursively
---it's a bad practice, but I just leave it here for now. may be fix it in the future...
---@param node TSNode
---@return TSNode[]
local function collect_node_rec(node)
local current_level = collect(node.iter_children, node)
local ret = {}
for _, child in ipairs(current_level) do
if child:child_count() > 0 then
ret = vim.tbl_extend("error", ret, collect_node_rec(child))
end
table.insert(ret, child)
end
return ret
end
local foo = vim.treesitter.get_string_parser("var foo = string.Empty;", "c_sharp"):parse(true)[1]:root()
vim.print(#collect_node_rec(foo)) -- <-- error here
- select all, then run it with sniprun.
- error occurs.
- however a simple snip like
vim.print('foo')just works.
Screenshots
Environment:
- NVIM v0.10.1
- ArchWSL
{
machine = "x86_64",
release = "5.15.153.1-microsoft-standard-WSL2",
sysname = "Linux",
version = "#1 SMP Fri Mar 29 23:14:13 UTC 2024"
}