[DEVS] Function Dump - Printable Version +- Cuberite Forum (https://forum.cuberite.org) +-- Forum: Plugins (https://forum.cuberite.org/forum-1.html) +--- Forum: Plugin Releases (https://forum.cuberite.org/forum-2.html) +---- Forum: Archived Plugins (https://forum.cuberite.org/forum-18.html) +---- Thread: [DEVS] Function Dump (/thread-1349.html) |
[DEVS] Function Dump - Jarva - 02-04-2014 After playing around with the existing functions etc. I made a quick plugin to dump the global table of functions and tables to a text file. I wasn't quite sure where to post it, but seeing as it's in plugin form, I posted it here. Function Dump Plugin Download Function Dump Text File (03/02/14) Download Function to dump global table: function PrintTables() local content = "" local content2 = "" for k, v in pairs(_G) do if type(v) == "function" then content = content..tostring(k).."\n" elseif type(v) == "table" then for i, z in pairs(v) do if type(z) == "function" then if tostring(k) ~= "_G" then content2 = content2..tostring(k).."."..tostring(i).."\n" end end end end end local file = io.open("Plugins/FunctionDump/data.txt", "w") file:write(content) file:write(content2) file:close() end RE: [DEVS] Function Dump - tigerw - 02-04-2014 Do correct me, but does this not do the same as what APIDump does? RE: [DEVS] Function Dump - Jarva - 02-04-2014 No, this simply prints the name of the global functions and tables. APIDump is what prints and displays the API documentation for on the main web page. http://mc-server.xoft.cz/LuaAPI/ PS: I made this before I even knew about APIDump and had to quickly look into it to make sure I wasn't going to embarrass myself. RE: [DEVS] Function Dump - NiLSPACE - 02-04-2014 I think this does what an early version of APIDump did RE: [DEVS] Function Dump - xoft - 02-04-2014 That code won't print two-levels-deep tables, although I don't think we're using any of those, so it doesn't matter much. Be careful though of recursion - "_G" table contains all the globals, including itself, so "_G._G" is a table again, etc. Your code will print at least global functions twice - "assert" and "_G.assert". RE: [DEVS] Function Dump - Jarva - 02-04-2014 (02-04-2014, 04:59 AM)xoft Wrote: That code won't print two-levels-deep tables, although I don't think we're using any of those, so it doesn't matter much. Be careful though of recursion - "_G" table contains all the globals, including itself, so "_G._G" is a table again, etc. Your code will print at least global functions twice - "assert" and "_G.assert".Fixed in the code in OP. RE: [DEVS] Function Dump - xoft - 02-04-2014 Now the code is quite inefficient, the check for _G on line 10 either fails or succeeds for all iterations over i, so there's no point in putting it into the innermost for-loop. And k is already a string, no need to tostring() it. |