Files
coa-weakauras/APIDocumentation/FieldsAPIMixin.lua
T

87 lines
2.4 KiB
Lua

local addonName, Private = ...
FieldsAPIMixin = Private.CreateFromMixins(BaseAPIMixin);
function FieldsAPIMixin:GetParentName()
if self.Function then
return self.Function:GetName();
end
if self.Table then
return self.Table:GetName();
end
return "";
end
function FieldsAPIMixin:GetType()
return "field";
end
function FieldsAPIMixin:GetLinkHexColor()
return "ffdd55";
end
function FieldsAPIMixin:MatchesSearchString(searchString)
if self:GetLoweredName():match(searchString) then
return true;
end
if self:MatchesAnyDocumentation(searchString) then
return true;
end
return false;
end
function FieldsAPIMixin:GetLuaType()
if self.InnerType then
local complexType = APIDocumentation:FindAPIByName("table", self.InnerType);
return ("%s of %s"):format(self.Type, complexType and complexType:GenerateAPILink() or self.InnerType)
end
if self.EnumValue then
return self.EnumValue;
end
local complexType = APIDocumentation:FindAPIByName("table", self.Type);
return complexType and complexType:GenerateAPILink() or self.Type;
end
function FieldsAPIMixin:GetStrideIndex()
return self.StrideIndex;
end
function FieldsAPIMixin:IsOptional()
return self.Default ~= nil or self.Nilable;
end
function FieldsAPIMixin:GetSingleOutputLine()
local optionalString = "";
if self:IsOptional() then
if self.Default ~= nil then
optionalString = ("(default:%s) "):format(tostring(self.Default));
else
optionalString = "(optional) ";
end
end
if self.Documentation then
return ("%s%s %s - %s"):format(optionalString, self:GetLuaType(), self:GenerateAPILink(), table.concat(self.Documentation, " "));
end
return ("%s%s %s"):format(optionalString, self:GetLuaType(), self:GenerateAPILink());
end
function FieldsAPIMixin:GetArgumentString(decorateOptionals, includeColorCodes)
local prefix = decorateOptionals ~= false and self:IsOptional() and "optional " or "";
if includeColorCodes ~= false then
return ("|cff%s%s%s|r"):format(self:GetLinkHexColor(), prefix, self:GetName());
end
return ("%s%s"):format(prefix, self:GetName());
end
function FieldsAPIMixin:GetReturnString(decorateOptionals, includeColorCodes)
return self:GetArgumentString(decorateOptionals, includeColorCodes); -- Nothing special currently
end
function FieldsAPIMixin:GetPayloadString(decorateOptionals, includeColorCodes)
return self:GetReturnString(decorateOptionals, includeColorCodes); -- Nothing special currently
end