diff --git a/Help.lua b/Help.lua index b1d1bc2..35d483e 100644 --- a/Help.lua +++ b/Help.lua @@ -1060,91 +1060,93 @@ function DogTag:OpenHelp() tagCache[ns] = tagCache_ns for i, tag in ipairs(tags) do local tagData = Tags[ns][tag] - local tagCache_ns_tag = {} - tagCache_ns[tag] = tagCache_ns_tag - tagCache_ns_tag.category = tagData.category - local u = newList() - u[#u+1] = "

" - local t = newList() - t[#t+1] = "[" - if tagData.category ~= L["Operators"] then - t[#t+1] = tag - local arg = tagData.arg - if arg then - t[#t+1] = "(" - for i = 1, #arg, 3 do - if i > 1 then - t[#t+1] = ", " - end - local argName, argTypes, argDefault = arg[i], arg[i+1], arg[i+2] - t[#t+1] = argName - if argName ~= "..." and argDefault ~= "@req" then - t[#t+1] = "=" - if argDefault == "@undef" then - t[#t+1] = "undef" - elseif argDefault == false then - if argTypes:match("boolean") then - t[#t+1] = "false" + if not tagData.noDoc then + local tagCache_ns_tag = {} + tagCache_ns[tag] = tagCache_ns_tag + tagCache_ns_tag.category = tagData.category + local u = newList() + u[#u+1] = "

" + local t = newList() + t[#t+1] = "[" + if tagData.category ~= L["Operators"] then + t[#t+1] = tag + local arg = tagData.arg + if arg then + t[#t+1] = "(" + for i = 1, #arg, 3 do + if i > 1 then + t[#t+1] = ", " + end + local argName, argTypes, argDefault = arg[i], arg[i+1], arg[i+2] + t[#t+1] = argName + if argName ~= "..." and argDefault ~= "@req" then + t[#t+1] = "=" + if argDefault == "@undef" then + t[#t+1] = "undef" + elseif argDefault == false then + if argTypes:match("boolean") then + t[#t+1] = "false" + else + t[#t+1] = "nil" + end + elseif type(argDefault) == "string" then + t[#t+1] = ("%q"):format(argDefault) else - t[#t+1] = "nil" + t[#t+1] = tostring(argDefault) end - elseif type(argDefault) == "string" then - t[#t+1] = ("%q"):format(argDefault) - else - t[#t+1] = tostring(argDefault) end end + t[#t+1] = ")" end - t[#t+1] = ")" - end - else - local arg = tagData.arg - local operator = tag - if operator == "unm" then - operator = "-" - end - if #arg == 3 then - t[#t+1] = operator - end - for i = 1, #arg, 3 do - local argName, argTypes, argDefault = arg[i], arg[i+1], arg[i+2] - if i > 1 then - t[#t+1] = " " + else + local arg = tagData.arg + local operator = tag + if operator == "unm" then + operator = "-" + end + if #arg == 3 then t[#t+1] = operator - t[#t+1] = " " end - t[#t+1] = argName + for i = 1, #arg, 3 do + local argName, argTypes, argDefault = arg[i], arg[i+1], arg[i+2] + if i > 1 then + t[#t+1] = " " + t[#t+1] = operator + t[#t+1] = " " + end + t[#t+1] = argName + end end - end - t[#t+1] = "]" - u[#u+1] = escapeHTML(DogTag:ColorizeCode(table.concat(t))) - u[#u+1] = "

" - t = del(t) - u[#u+1] = "

" - u[#u+1] = "|r |r |r |r " - u[#u+1] = escapeHTML(tagData.doc) - if tagData.alias then - u[#u+1] = "
" + t[#t+1] = "]" + u[#u+1] = escapeHTML(DogTag:ColorizeCode(table.concat(t))) + u[#u+1] = "" + t = del(t) + u[#u+1] = "

" u[#u+1] = "|r |r |r |r " - u[#u+1] = L["alias for "] - u[#u+1] = escapeHTML(DogTag:ColorizeCode("[" .. tagData.alias .. "]")) - end - u[#u+1] = "
" - local examples = newList((";"):split(tagData.example)) - for i, v in ipairs(examples) do - local tag, result = v:trim():match("^(.*) => \"(.*)\"$") - u[#u+1] = "|r |r |r |r • " - u[#u+1] = escapeHTML(DogTag:ColorizeCode(tag)) - u[#u+1] = " => \"|cffffffff" - u[#u+1] = escapeHTML(result) - u[#u+1] = "|r\"" + u[#u+1] = escapeHTML(tagData.doc) + if tagData.alias then + u[#u+1] = "
" + u[#u+1] = "|r |r |r |r " + u[#u+1] = L["alias for "] + u[#u+1] = escapeHTML(DogTag:ColorizeCode("[" .. tagData.alias .. "]")) + end u[#u+1] = "
" + local examples = newList((";"):split(tagData.example)) + for i, v in ipairs(examples) do + local tag, result = v:trim():match("^(.*) => \"(.*)\"$") + u[#u+1] = "|r |r |r |r • " + u[#u+1] = escapeHTML(DogTag:ColorizeCode(tag)) + u[#u+1] = " => \"|cffffffff" + u[#u+1] = escapeHTML(result) + u[#u+1] = "|r\"" + u[#u+1] = "
" + end + examples = del(examples) + u[#u+1] = "
" + u[#u+1] = "

" + tagCache_ns_tag.html = table.concat(u) + u = del(u) end - examples = del(examples) - u[#u+1] = "
" - u[#u+1] = "

" - tagCache_ns_tag.html = table.concat(u) - u = del(u) end local tmp = {} diff --git a/LibDogTag-3.0.lua b/LibDogTag-3.0.lua index 586c177..01176d6 100644 --- a/LibDogTag-3.0.lua +++ b/LibDogTag-3.0.lua @@ -274,6 +274,10 @@ function DogTag:AddTag(namespace, tag, data) error("if doc is not supplied, category must be nil", 2) end end + if data.noDoc and type(data.doc) ~= "nil" then + error(("doc must be nil if noDoc is true, got %s"):format(type(data.doc)), 2) + end + tagData.noDoc = data.noDoc del(data) clearCodes(namespace) end