Hello Thomas, here is my "dump()" I've been using for several years:
---- function dump(arg, opts) -- .seen, .pfx if type(opts) == "string" then print(opts); opts = nil elseif opts == true then print("-- (dump)"); opts = nil end local pfx = opts and opts.pfx local seen = opts and opts.seen or {} if type(arg) == "table" then if pfx then pfx = pfx .. "][" else pfx = "[" --seen = {} end seen[arg] = tostring(arg) --true local keys = {} do -- Sort keys, if all are strings local strs_only = true for k in pairs(arg) do if strs_only and type(k) ~= "string" then strs_only = false end keys[#keys + 1] = k end if strs_only then table.sort(keys) end end for _, key in ipairs(keys) do local val = arg[key] io.write(pfx .. tostring(key) .. "] = " .. tostring(val) .. "\t(" .. type(val) .. ")") if type(val) == "table" then if seen[val] then print(" (seen)") else print() dump(val, {pfx = pfx .. tostring(key), seen = seen}) --pfx .. tostring(key), seen) end else print() end end else print(arg) end end ---- Try: ---- a = {c = 1, b = 2}; a.a = a dump(a) dump(a, "This is 'a'.") ---- Improvements or parametrization of visualizing style would be possible, of course... Best regards, Lukas ----- Original Message ----- From: Schmitz Thomas A. [mailto:thomas.schm...@uni-bonn.de] To: mailing list for ConTeXt users [mailto:ntg-context@ntg.nl] Sent: Sat, 30 Jul 2016 23:01:29 +0100 Subject: Re: [NTG-context] lua tables - how do you cope? > Thank you, but this is not what I’m looking for. I know how to sort a table, > and I know the Lua table tutorial (the Lua wiki is, IMHO, really terrible and > disorganized). I have to construct deeply nested tables and sometimes lose > track of what is at what level of my table, so I was wondering if there was > an easy way of visualizing a nested table. On the web, you can find a number > of (mostly abandoned) projects; the one at > http://siffiejoe.github.io/lua-microscope/ says: "Many Lua programmers have > written their own pretty-printer or data dumper and some even use it for > (de-)serializing Lua data structures.” So I was wondering if any of the Lua > users here on the list has something they want to share. Thomas ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________