1
0

APIDump: Added support for member variables.

This commit is contained in:
madmaxoft 2013-10-18 21:29:38 +02:00
parent 314c7d98fb
commit 07ba48840d
2 changed files with 59 additions and 4 deletions

View File

@ -31,6 +31,11 @@ g_APIDesc =
ConstantName = { Notes = "Notes about the constant" },
} ,
Variables =
{
VariableName = { Type = "string", Notes = "Notes about the variable" },
} ,
AdditionalInfo = -- Paragraphs to be exported after the function definitions table
{
{
@ -610,8 +615,8 @@ World:ForEachChestInChunk(Player:GetChunkX(), Player:GetChunkZ(),
},
Variables =
{
p1 = { Notes = "{{Vector3i}} of one corner. Usually the lesser of the two coords in each set" },
p2 = { Notes = "{{Vector3i}} of the other corner. Usually the larger of the two coords in each set" },
p1 = { Type = "{{Vector3i}}", Notes = "The first corner. Usually the lesser of the two coords in each set" },
p2 = { Type = "{{Vector3i}}", Notes = "The second corner. Usually the larger of the two coords in each set" },
},
},

View File

@ -459,10 +459,21 @@ function ReadDescriptions(a_API)
end
end -- for j, cons
end -- if (APIDesc.Constants ~= nil)
else
-- Process member variables:
local vars = {};
for name, desc in pairs(APIDesc.Variables or {}) do
desc.Name = name;
table.insert(vars, desc);
end
cls.Variables = vars;
else -- if (APIDesc ~= nil)
-- Class is not documented at all, add all its members to Undocumented lists:
cls.UndocumentedFunctions = {};
cls.UndocumentedConstants = {};
cls.Variables = {};
for j, func in ipairs(cls.Functions) do
local FnName = func.DocID or func.Name;
if not(IsFunctionIgnored(cls.Name .. "." .. FnName)) then
@ -505,6 +516,13 @@ function ReadDescriptions(a_API)
return (c1.Name < c2.Name);
end
);
-- Sort the member variables:
table.sort(cls.Variables,
function(v1, v2)
return (v1.Name < v2.Name);
end
);
end -- for i, cls
-- Sort the descendants lists:
@ -618,7 +636,7 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
cf:write(" <tr>\n <td>" .. func.Name .. "</td>\n");
cf:write(" <td>" .. LinkifyString(func.Params or "", (a_InheritedName or a_ClassAPI.Name)).. "</td>\n");
cf:write(" <td>" .. LinkifyString(func.Return or "", (a_InheritedName or a_ClassAPI.Name)).. "</td>\n");
cf:write(" <td>" .. LinkifyString(func.Notes or "", (a_InheritedName or a_ClassAPI.Name)) .. "</td>\n </tr>\n");
cf:write(" <td>" .. LinkifyString(func.Notes or "<i>(undocumented)</i>", (a_InheritedName or a_ClassAPI.Name)) .. "</td>\n </tr>\n");
end
cf:write(" </table>\n\n");
end
@ -641,6 +659,24 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
cf:write(" </table>\n\n");
end
local function WriteVariables(a_Variables, a_InheritedName)
if (#a_Variables == 0) then
return;
end
if (a_InheritedName ~= nil) then
cf:write(" <h2>Member variables inherited from " .. a_InheritedName .. "</h2>\n");
end
cf:write(" <table>\n <tr>\n <th>Name</th>\n <th>Type</th>\n <th>Notes</th>\n </tr>\n");
for i, var in ipairs(a_Variables) do
cf:write(" <tr>\n <td>" .. var.Name .. "</td>\n");
cf:write(" <td>" .. LinkifyString(var.Type or "<i>(undocumented)</i>", a_InheritedName or a_ClassAPI.Name) .. "</td>\n");
cf:write(" <td>" .. LinkifyString(var.Notes or "", a_InheritedName or a_ClassAPI.Name) .. "</td>\n </tr>\n");
end
cf:write(" </table>\n\n");
end
local function WriteDescendants(a_Descendants)
if (#a_Descendants == 0) then
return;
@ -688,10 +724,12 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
local HasConstants = (#a_ClassAPI.Constants > 0);
local HasFunctions = (#a_ClassAPI.Functions > 0);
local HasVariables = (#a_ClassAPI.Variables > 0);
if (a_ClassAPI.Inherits ~= nil) then
for idx, cls in ipairs(a_ClassAPI.Inherits) do
HasConstants = HasConstants or (#cls.Constants > 0);
HasFunctions = HasFunctions or (#cls.Functions > 0);
HasVariables = HasVariables or (#cls.Variables > 0);
end
end
@ -702,6 +740,9 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
if (HasConstants) then
cf:write(" <li><a href=\"#constants\">Constants</a></li>\n");
end
if (HasVariables) then
cf:write(" <li><a href=\"#variables\">Member variables</a></li>\n");
end
if (HasFunctions) then
cf:write(" <li><a href=\"#functions\">Functions</a></li>\n");
end
@ -746,6 +787,15 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
end;
end;
-- Write the member variables:
if (HasVariables) then
cf:write(" <a name=\"variables\"><hr /><h1>Member variables</h1></a>\n");
WriteVariables(a_ClassAPI.Variables, nil);
for i, cls in ipairs(InheritanceChain) do
WriteVariables(cls.Variables, cls.Name);
end;
end
-- Write the functions, including the inherited ones:
if (HasFunctions) then
cf:write(" <a name=\"functions\"><hr /><h1>Functions</h1></a>\n");