sniprun icon indicating copy to clipboard operation
sniprun copied to clipboard

Lua-original used for code containing `vim`

Open sharpchen opened this issue 1 year ago • 1 comments

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 image

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"
}

sharpchen avatar Sep 26 '24 02:09 sharpchen