From 79d40b816e95af51a7216739dafcff003728fb47 Mon Sep 17 00:00:00 2001 From: Niels Breuker Date: Sun, 12 Mar 2023 21:14:29 +0100 Subject: Fixed global variables/functions in APIDump being part of API docs --- Server/Plugins/APIDump/_preload.lua | 22 ++++++++++++++++++++++ Server/Plugins/APIDump/main_APIDump.lua | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 Server/Plugins/APIDump/_preload.lua diff --git a/Server/Plugins/APIDump/_preload.lua b/Server/Plugins/APIDump/_preload.lua new file mode 100644 index 000000000..becc691c4 --- /dev/null +++ b/Server/Plugins/APIDump/_preload.lua @@ -0,0 +1,22 @@ + +-- _preload.lua + +-- First thing executed when the plugin loads. Replaces the global environment (_G) with an empty table +-- with __index set to the old environment. This way any function or variable that is created globally by the plugin +-- won't be reported as new or undocumented. + + + + + +local newEnv, oldEnv = {}, _G +local setmetatable = setmetatable +for k, v in pairs(_G) do + newEnv[k] = v; + oldEnv[k] = nil; +end +_G = setmetatable(oldEnv, {__index = newEnv}); + + + + diff --git a/Server/Plugins/APIDump/main_APIDump.lua b/Server/Plugins/APIDump/main_APIDump.lua index 7396f98d2..5d6f5255f 100644 --- a/Server/Plugins/APIDump/main_APIDump.lua +++ b/Server/Plugins/APIDump/main_APIDump.lua @@ -136,7 +136,7 @@ local function CreateAPITables() return res; end - for i, v in pairs(_G) do + for i, v in pairs(getmetatable(_G).__index) do if ( (v ~= _G) and -- don't want the global namespace (v ~= _G.packages) and -- don't want any packages -- cgit v1.2.3