doc: Add a new `@propemits` for common property signals.
This adds a lot more boilerplate than `@emits`. In turn, it avoids copy/pasting some code for *all* properties.
This commit is contained in:
parent
185ad15140
commit
deca2880c5
|
@ -245,6 +245,50 @@ add_custom_tag {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Avoid repetitive boilerplate code for property signals.
|
||||||
|
-- Add true if the signal has the value or false if it doesn't.
|
||||||
|
-- @propemits true/false true/false description[...]
|
||||||
|
add_custom_tag {
|
||||||
|
name = "propemits",
|
||||||
|
title = "Emit signals:",
|
||||||
|
hidden = false,
|
||||||
|
params = {{name = "new_value"}, {name = "old_value"}},
|
||||||
|
format = function(self, params, item, md)
|
||||||
|
-- Add an automatic fallback description.
|
||||||
|
local description = params.description ~= "" and params.description or
|
||||||
|
"When the `"..item.name.."` value changes."
|
||||||
|
local new_value = params.new_value.value == "true"
|
||||||
|
local old_value = params.old_value.value == "true"
|
||||||
|
|
||||||
|
-- Add the sub-tags.
|
||||||
|
local subs = {}
|
||||||
|
item.auto_params["propemitstparam_override"] = subs
|
||||||
|
|
||||||
|
-- The first argument is always the object which changes.
|
||||||
|
subs[1] = item.module.name.." self ".." The object which changed ("..
|
||||||
|
"useful when connecting many object to the same callback)."
|
||||||
|
|
||||||
|
-- Most signals also have the new value.
|
||||||
|
if new_value then
|
||||||
|
local type = item.params[1] or "unknown"
|
||||||
|
subs[2] = type.." ".."v The new value."
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Some also have the old value.
|
||||||
|
if old_value then
|
||||||
|
local type = item.params[1] or "unknown"
|
||||||
|
subs[3] = type.." ".."v The new value."
|
||||||
|
end
|
||||||
|
|
||||||
|
local new_params = {
|
||||||
|
name = { name = name, value = "property::"..item.name },
|
||||||
|
description = params.description
|
||||||
|
}
|
||||||
|
|
||||||
|
return default_format_callback(self, new_params, item, md)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
-- List the beautiful variables used by the method or property fllbacks.
|
-- List the beautiful variables used by the method or property fllbacks.
|
||||||
-- @usebeautiful beautiful.varname usage[...]
|
-- @usebeautiful beautiful.varname usage[...]
|
||||||
add_custom_tag {
|
add_custom_tag {
|
||||||
|
@ -444,11 +488,15 @@ local function init_custom_types(item)
|
||||||
|
|
||||||
-- Allow the template to fetch the right sub-tags.
|
-- Allow the template to fetch the right sub-tags.
|
||||||
function item.get_auto_params(tag, value)
|
function item.get_auto_params(tag, value)
|
||||||
|
-- Makes auto-generated subtags easier to implement.
|
||||||
|
if item.auto_params[tag.."tparam_override"] then
|
||||||
|
return item.auto_params[tag.."tparam_override"], named_tags[tag.."tparam"]
|
||||||
|
end
|
||||||
|
|
||||||
if not item.auto_params[tag.."tparam"] then return nil, nil end
|
if not item.auto_params[tag.."tparam"] then return nil, nil end
|
||||||
|
|
||||||
local parsed = parse_custom_tags(value, named_tags[tag].params)
|
local parsed = parse_custom_tags(value, named_tags[tag].params)
|
||||||
|
|
||||||
|
|
||||||
if parsed.name and item.auto_params[tag.."tparam"][parsed.name.value] then
|
if parsed.name and item.auto_params[tag.."tparam"][parsed.name.value] then
|
||||||
return item.auto_params[tag.."tparam"][parsed.name.value], named_tags[tag.."tparam"]
|
return item.auto_params[tag.."tparam"][parsed.name.value], named_tags[tag.."tparam"]
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue