docs: add Event to new the doctree

This commit is contained in:
Daniel Kolesa 2016-08-10 16:05:16 +01:00
parent 88edaa768c
commit 1a5a04ed49
3 changed files with 55 additions and 14 deletions

View File

@ -2,6 +2,7 @@ local util = require("util")
local dutil = require("docgen.util") local dutil = require("docgen.util")
local writer = require("docgen.writer") local writer = require("docgen.writer")
local eomap = require("docgen.mappings")
local M = {} local M = {}
@ -105,4 +106,53 @@ M.Doc = Node:clone {
end end
} }
M.Event = Node:clone {
__ctor = function(self, ev)
self.event = ev
assert(self.event)
end,
name_get = function(self)
return self.event:name_get()
end,
type_get = function(self)
return self.event:type_get()
end,
doc_get = function(self)
return M.Doc(self.event:documentation_get())
end,
scope_get = function(self)
return self.event:scope_get()
end,
c_name_get = function(self)
return self.event:c_name_get()
end,
is_beta = function(self)
return self.event:is_beta()
end,
is_hot = function(self)
return self.event:is_hot()
end,
is_restart = function(self)
return self.event:is_restart()
end,
nspaces_get = function(self, cl, root)
local tbl = eomap.gen_nsp_class(cl)
tbl[#tbl + 1] = "event"
tbl[#tbl + 1] = self:name_get():lower():gsub(",", "_")
if root then
tbl[#tbl + 1] = true
end
return tbl
end
}
return M return M

View File

@ -78,16 +78,6 @@ M.gen_nsp_func = function(fn, cl, root)
return tbl return tbl
end end
M.gen_nsp_ev = function(ev, cl, root)
local tbl = M.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
M.gen_nsp_ref = function(str, root) M.gen_nsp_ref = function(str, root)
local decl = eolian.declaration_get_by_name(str) local decl = eolian.declaration_get_by_name(str)
if decl then if decl then

View File

@ -767,10 +767,11 @@ local build_class = function(cl)
else else
local nt = {} local nt = {}
for i, ev in ipairs(evs) do for i, ev in ipairs(evs) do
ev = dtree.Event(ev)
local lbuf = writer.Buffer() local lbuf = writer.Buffer()
lbuf:write_link(eomap.gen_nsp_ev(ev, cl, true), ev:name_get()) lbuf:write_link(ev:nspaces_get(cl, true), ev:name_get())
nt[#nt + 1] = { nt[#nt + 1] = {
lbuf:finish(), dtree.Doc(ev:documentation_get()):brief_get() lbuf:finish(), ev:doc_get():brief_get()
} }
build_event(ev, cl) build_event(ev, cl)
end end
@ -1048,7 +1049,7 @@ build_property = function(fn, cl)
end end
build_event = function(ev, cl) build_event = function(ev, cl)
local f = writer.Writer(eomap.gen_nsp_ev(ev, cl)) local f = writer.Writer(ev:nspaces_get(cl))
f:write_h(cl:full_name_get() .. ": " .. ev:name_get(), 2) f:write_h(cl:full_name_get() .. ": " .. ev:name_get(), 2)
@ -1088,7 +1089,7 @@ build_event = function(ev, cl)
f:write_nl() f:write_nl()
f:write_h("Description", 3) f:write_h("Description", 3)
f:write_raw(dtree.Doc(ev:documentation_get()):full_get(nil, true)) f:write_raw(ev:doc_get():full_get(nil, true))
f:write_nl() f:write_nl()
f:finish() f:finish()