forked from enlightenment/efl
docs: generate separate doc pages for events
This commit is contained in:
parent
d2926f74ff
commit
e321ef22a4
|
@ -124,6 +124,16 @@ local gen_nsp_func = function(fn, cl, root)
|
||||||
return tbl
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local gen_nsp_ev = function(ev, cl, root)
|
||||||
|
local tbl = gen_nsp_class(cl)
|
||||||
|
tbl[#tbl + 1] = "event"
|
||||||
|
tbl[#tbl + 1] = ev:name_get():lower():gsub(",", "_")
|
||||||
|
if root then
|
||||||
|
tbl[#tbl + 1] = true
|
||||||
|
end
|
||||||
|
return tbl
|
||||||
|
end
|
||||||
|
|
||||||
local gen_nsp_ref
|
local gen_nsp_ref
|
||||||
gen_nsp_ref = function(str, root)
|
gen_nsp_ref = function(str, root)
|
||||||
local decl = eolian.declaration_get_by_name(str)
|
local decl = eolian.declaration_get_by_name(str)
|
||||||
|
@ -885,8 +895,9 @@ local get_typedecl_str = function(tp)
|
||||||
error("unhandled typedecl type: " .. tpt)
|
error("unhandled typedecl type: " .. tpt)
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_suffixed_ctype = function(tp, suffix, isstr)
|
local get_suffixed_ctype = function(tp, suffix)
|
||||||
local ct = isstr and tp or tp:c_type_get()
|
if not tp then tp = "void" end
|
||||||
|
local ct = (type(tp) == "string") and tp or tp:c_type_get()
|
||||||
if ct:sub(#ct) == "*" then
|
if ct:sub(#ct) == "*" then
|
||||||
return ct .. suffix
|
return ct .. suffix
|
||||||
else
|
else
|
||||||
|
@ -1043,9 +1054,9 @@ local gen_cparam = function(par, out)
|
||||||
out = out or (par:direction_get() == eolian.parameter_dir.OUT)
|
out = out or (par:direction_get() == eolian.parameter_dir.OUT)
|
||||||
local tstr = part:c_type_get()
|
local tstr = part:c_type_get()
|
||||||
if out then
|
if out then
|
||||||
tstr = get_suffixed_ctype(tstr, "*", true)
|
tstr = get_suffixed_ctype(tstr, "*")
|
||||||
end
|
end
|
||||||
return get_suffixed_ctype(tstr, par:name_get(), true)
|
return get_suffixed_ctype(tstr, par:name_get())
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_func_csig_part = function(cn, tp)
|
local get_func_csig_part = function(cn, tp)
|
||||||
|
@ -1326,7 +1337,7 @@ end
|
||||||
|
|
||||||
-- builders
|
-- builders
|
||||||
|
|
||||||
local build_method, build_property
|
local build_method, build_property, build_event
|
||||||
|
|
||||||
local build_reftable = function(f, title, ctitle, ctype, t)
|
local build_reftable = function(f, title, ctitle, ctype, t)
|
||||||
if not t or #t == 0 then
|
if not t or #t == 0 then
|
||||||
|
@ -1365,9 +1376,9 @@ local build_functable = function(f, title, ctitle, cl, tp)
|
||||||
lbuf:finish(), get_brief_fdoc(v)
|
lbuf:finish(), get_brief_fdoc(v)
|
||||||
}
|
}
|
||||||
if funct_to_str[v:type_get()] == "property" then
|
if funct_to_str[v:type_get()] == "property" then
|
||||||
build_property(v, cl, linkt)
|
build_property(v, cl)
|
||||||
else
|
else
|
||||||
build_method(v, cl, linkt)
|
build_method(v, cl)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
table.sort(nt, function(v1, v2) return v1[1] < v2[1] end)
|
table.sort(nt, function(v1, v2) return v1[1] < v2[1] end)
|
||||||
|
@ -1561,35 +1572,17 @@ local build_class = function(cl)
|
||||||
if #evs == 0 then
|
if #evs == 0 then
|
||||||
f:write_raw("This class does not define any events.\n")
|
f:write_raw("This class does not define any events.\n")
|
||||||
else
|
else
|
||||||
local first = true
|
local nt = {}
|
||||||
for i, ev in ipairs(evs) do
|
for i, ev in ipairs(evs) do
|
||||||
if not first then
|
local lbuf = Buffer()
|
||||||
f:write_nl(2)
|
lbuf:write_link(gen_nsp_ev(ev, cl, true), ev:name_get())
|
||||||
end
|
nt[#nt + 1] = {
|
||||||
f:write_h(ev:name_get(), 4)
|
lbuf:finish(), get_brief_doc(ev:documentation_get())
|
||||||
f:write_i("**Scope:** ", scope_to_str[ev:scope_get()])
|
}
|
||||||
local tagstrs = {}
|
build_event(ev, cl)
|
||||||
if ev:is_beta() then tagstrs[#tagstrs + 1] = "@beta" end
|
|
||||||
if ev:is_hot() then tagstrs[#tagstrs + 1] = "@hot" end
|
|
||||||
if ev:is_restart() then tagstrs[#tagstrs + 1] = "@restart" end
|
|
||||||
f:write_br(true)
|
|
||||||
if #tagstrs > 0 then
|
|
||||||
f:write_i("**Tags:** ", unpack(tagstrs))
|
|
||||||
f:write_br(true)
|
|
||||||
end
|
|
||||||
local tp = ev:type_get()
|
|
||||||
if tp then
|
|
||||||
f:write_i("**Type:** ")
|
|
||||||
f:write_m(get_type_str(tp))
|
|
||||||
f:write_br(true)
|
|
||||||
f:write_i("**Type:** ")
|
|
||||||
f:write_m(tp:c_type_get())
|
|
||||||
f:write_br(true)
|
|
||||||
end
|
|
||||||
f:write_nl()
|
|
||||||
write_full_doc(f, ev:documentation_get())
|
|
||||||
first = false
|
|
||||||
end
|
end
|
||||||
|
table.sort(nt, function(v1, v2) return v1[1] < v2[1] end)
|
||||||
|
f:write_table({ "Event name", "Brief description" }, nt)
|
||||||
end
|
end
|
||||||
|
|
||||||
f:finish()
|
f:finish()
|
||||||
|
@ -1867,6 +1860,51 @@ build_property = function(fn, cl)
|
||||||
f:finish()
|
f:finish()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
build_event = function(ev, cl)
|
||||||
|
local f = Writer(gen_nsp_ev(ev, cl))
|
||||||
|
|
||||||
|
f:write_h(cl:full_name_get() .. ": " .. ev:name_get(), 2)
|
||||||
|
|
||||||
|
f:write_h("Signature", 3)
|
||||||
|
local buf = { ev:name_get() }
|
||||||
|
|
||||||
|
if ev:scope_get() == eolian.object_scope.PRIVATE then
|
||||||
|
buf[#buf + 1] = " @private"
|
||||||
|
elseif ev:scope_get() == eolian.object_scope.PROTECTED then
|
||||||
|
buf[#buf + 1] = " @protected"
|
||||||
|
end
|
||||||
|
|
||||||
|
if ev:is_beta() then
|
||||||
|
buf[#buf + 1] = " @beta"
|
||||||
|
end
|
||||||
|
if ev:is_hot() then
|
||||||
|
buf[#buf + 1] = " @hot"
|
||||||
|
end
|
||||||
|
if ev:is_restart() then
|
||||||
|
buf[#buf + 1] = " @restart"
|
||||||
|
end
|
||||||
|
|
||||||
|
local etp = ev:type_get()
|
||||||
|
if etp then
|
||||||
|
buf[#buf + 1] = ": "
|
||||||
|
buf[#buf + 1] = get_type_str(etp)
|
||||||
|
end
|
||||||
|
|
||||||
|
buf[#buf + 1] = ";"
|
||||||
|
f:write_code(table.concat(buf))
|
||||||
|
f:write_nl()
|
||||||
|
|
||||||
|
f:write_h("C signature", 3)
|
||||||
|
f:write_code(get_suffixed_ctype(etp, ev:c_name_get()) .. ";", "c")
|
||||||
|
f:write_nl()
|
||||||
|
|
||||||
|
f:write_h("Description", 3)
|
||||||
|
write_full_doc(f, ev:documentation_get())
|
||||||
|
f:write_nl()
|
||||||
|
|
||||||
|
f:finish()
|
||||||
|
end
|
||||||
|
|
||||||
getopt.parse {
|
getopt.parse {
|
||||||
args = arg,
|
args = arg,
|
||||||
descs = {
|
descs = {
|
||||||
|
|
Loading…
Reference in New Issue