local dutil = require("docgen.util")
local writer = require("docgen.writer")
+local eomap = require("docgen.mappings")
local M = {}
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 tbl
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)
local decl = eolian.declaration_get_by_name(str)
if decl then
else
local nt = {}
for i, ev in ipairs(evs) do
+ ev = dtree.Event(ev)
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] = {
- lbuf:finish(), dtree.Doc(ev:documentation_get()):brief_get()
+ lbuf:finish(), ev:doc_get():brief_get()
}
build_event(ev, cl)
end
end
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_nl()
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:finish()