From 1a5a04ed494ba32dd04144bfe640c7b1013ad020 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Wed, 10 Aug 2016 16:05:16 +0100 Subject: [PATCH] docs: add Event to new the doctree --- src/scripts/elua/apps/docgen/doctree.lua | 50 +++++++++++++++++++++++ src/scripts/elua/apps/docgen/mappings.lua | 10 ----- src/scripts/elua/apps/gendoc.lua | 9 ++-- 3 files changed, 55 insertions(+), 14 deletions(-) diff --git a/src/scripts/elua/apps/docgen/doctree.lua b/src/scripts/elua/apps/docgen/doctree.lua index df493588cc..91074f48c0 100644 --- a/src/scripts/elua/apps/docgen/doctree.lua +++ b/src/scripts/elua/apps/docgen/doctree.lua @@ -2,6 +2,7 @@ local util = require("util") local dutil = require("docgen.util") local writer = require("docgen.writer") +local eomap = require("docgen.mappings") local M = {} @@ -105,4 +106,53 @@ M.Doc = Node:clone { 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 diff --git a/src/scripts/elua/apps/docgen/mappings.lua b/src/scripts/elua/apps/docgen/mappings.lua index 486f724951..4fe3ad472f 100644 --- a/src/scripts/elua/apps/docgen/mappings.lua +++ b/src/scripts/elua/apps/docgen/mappings.lua @@ -78,16 +78,6 @@ M.gen_nsp_func = function(fn, cl, root) 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 diff --git a/src/scripts/elua/apps/gendoc.lua b/src/scripts/elua/apps/gendoc.lua index b778ab4284..6abb55d724 100644 --- a/src/scripts/elua/apps/gendoc.lua +++ b/src/scripts/elua/apps/gendoc.lua @@ -767,10 +767,11 @@ local build_class = function(cl) 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 @@ -1048,7 +1049,7 @@ build_property = function(fn, cl) 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) @@ -1088,7 +1089,7 @@ build_event = function(ev, cl) 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()