Unify the way optional params are displayed.
- Add -P,--plain_params setting for no brackets or defaults in param list. - Params with modifiers like [type=?foo] have brackets in param list. - Params with modifiers like [opt] show up as "optional" in param description.
This commit is contained in:
parent
89854e1537
commit
ef1261d0e4
6
ldoc.lua
6
ldoc.lua
|
@ -61,6 +61,7 @@ ldoc, a documentation generator for Lua, vs 1.4.0
|
||||||
-M,--merge allow module merging
|
-M,--merge allow module merging
|
||||||
-S,--simple no return or params, no summary
|
-S,--simple no return or params, no summary
|
||||||
-O,--one one-column output layout
|
-O,--one one-column output layout
|
||||||
|
-P,--plain_params don't show brackets or default values in param lists
|
||||||
--dump debug output dump
|
--dump debug output dump
|
||||||
--filter (default none) filter output as Lua data (e.g pl.pretty.dump)
|
--filter (default none) filter output as Lua data (e.g pl.pretty.dump)
|
||||||
--tags (default none) show all references to given tags, comma-separated
|
--tags (default none) show all references to given tags, comma-separated
|
||||||
|
@ -200,7 +201,7 @@ local ldoc_contents = {
|
||||||
'boilerplate','merge', 'wrap', 'not_luadoc', 'template_escape','merge_error_groups',
|
'boilerplate','merge', 'wrap', 'not_luadoc', 'template_escape','merge_error_groups',
|
||||||
'no_return_or_parms','no_summary','full_description','backtick_references', 'custom_see_handler',
|
'no_return_or_parms','no_summary','full_description','backtick_references', 'custom_see_handler',
|
||||||
'no_space_before_args','parse_extra','no_lua_ref','sort_modules','use_markdown_titles',
|
'no_space_before_args','parse_extra','no_lua_ref','sort_modules','use_markdown_titles',
|
||||||
'unqualified',
|
'plain_params', 'unqualified',
|
||||||
}
|
}
|
||||||
ldoc_contents = tablex.makeset(ldoc_contents)
|
ldoc_contents = tablex.makeset(ldoc_contents)
|
||||||
|
|
||||||
|
@ -317,6 +318,9 @@ if type(ldoc.custom_tags) == 'table' then -- custom tags
|
||||||
end
|
end
|
||||||
end -- custom tags
|
end -- custom tags
|
||||||
|
|
||||||
|
override 'plain_params'
|
||||||
|
ldoc.plain_params = args.plain_params
|
||||||
|
|
||||||
local source_dir = args.file
|
local source_dir = args.file
|
||||||
if type(source_dir) == 'table' then
|
if type(source_dir) == 'table' then
|
||||||
source_dir = source_dir[1]
|
source_dir = source_dir[1]
|
||||||
|
|
19
ldoc/doc.lua
19
ldoc/doc.lua
|
@ -791,21 +791,30 @@ function split_iden (name)
|
||||||
end
|
end
|
||||||
|
|
||||||
function build_arg_list (names,pmods)
|
function build_arg_list (names,pmods)
|
||||||
|
-- if plain_params option is set, return a simple parameter list.
|
||||||
|
if doc.ldoc.plain_params then
|
||||||
|
return '(' .. table.concat(names, ', ') .. ')'
|
||||||
|
end
|
||||||
-- build up the string representation of the argument list,
|
-- build up the string representation of the argument list,
|
||||||
-- using any opt and optchain modifiers if present.
|
-- using any opt and optchain modifiers if present.
|
||||||
-- For instance, '(a [, b])' if b is marked as optional
|
-- For instance, '(a [, b])' if b is marked as optional
|
||||||
-- with @param[opt] b
|
-- with @param[opt] b
|
||||||
local buffer, npending = { }, 0
|
local buffer, npending = { }, 0
|
||||||
local function acc(x) table.insert(buffer, x) end
|
local function acc(x) table.insert(buffer, x) end
|
||||||
|
local function get_opt(m)
|
||||||
|
return m and (m.opt or m.type and not not m.type:match '^%?')
|
||||||
|
end
|
||||||
-- a number of trailing [opt]s can be safely converted to [opt],[optchain],...
|
-- a number of trailing [opt]s can be safely converted to [opt],[optchain],...
|
||||||
if pmods then
|
if pmods then
|
||||||
local m = pmods[#names]
|
local m = pmods[#names]
|
||||||
if m and m.opt then
|
local opt = get_opt(m)
|
||||||
m.optchain = m.opt
|
if opt then
|
||||||
|
m.optchain = opt
|
||||||
for i = #names-1,1,-1 do
|
for i = #names-1,1,-1 do
|
||||||
m = pmods[i]
|
m = pmods[i]
|
||||||
if not m or not m.opt then break end
|
opt = get_opt(m)
|
||||||
m.optchain = m.opt
|
if not opt then break end
|
||||||
|
m.optchain = opt
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -817,7 +826,7 @@ function build_arg_list (names,pmods)
|
||||||
acc ((']'):rep(npending))
|
acc ((']'):rep(npending))
|
||||||
npending=0
|
npending=0
|
||||||
end
|
end
|
||||||
opt = m.optchain or m.opt
|
opt = m.optchain or get_opt(m)
|
||||||
if opt then
|
if opt then
|
||||||
acc('[')
|
acc('[')
|
||||||
npending=npending+1
|
npending=npending+1
|
||||||
|
|
|
@ -181,8 +181,10 @@ function html.generate_output(ldoc, args, project)
|
||||||
return type(t) == 'table' and t.append
|
return type(t) == 'table' and t.append
|
||||||
end
|
end
|
||||||
|
|
||||||
function ldoc.typename (tp)
|
function ldoc.typename (tp, pmods)
|
||||||
if not tp or tp == '' or tp:match '^@' then return '' end
|
if not tp or tp == '' or tp:match '^@' then
|
||||||
|
return pmods and pmods.opt and 'optional' or ''
|
||||||
|
end
|
||||||
local optional
|
local optional
|
||||||
-- ?<type> is short for ?nil|<type>
|
-- ?<type> is short for ?nil|<type>
|
||||||
if tp:match("^%?") and not tp:match '|' then
|
if tp:match("^%?") and not tp:match '|' then
|
||||||
|
@ -194,6 +196,9 @@ function html.generate_output(ldoc, args, project)
|
||||||
tp = tp2
|
tp = tp2
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if pmods and pmods.opt then
|
||||||
|
optional = true
|
||||||
|
end
|
||||||
local types = {}
|
local types = {}
|
||||||
for name in tp:gmatch("[^|]+") do
|
for name in tp:gmatch("[^|]+") do
|
||||||
local sym = name:match '([%w%.%:]+)'
|
local sym = name:match '([%w%.%:]+)'
|
||||||
|
|
|
@ -177,7 +177,9 @@ return [==[
|
||||||
<ul>
|
<ul>
|
||||||
# end
|
# end
|
||||||
# for p in iter(param) do
|
# for p in iter(param) do
|
||||||
# local name,tp,def = item:display_name_of(p), ldoc.typename(item:type_of_param(p)), item:default_of_param(p)
|
# local name = item:display_name_of(p)
|
||||||
|
# local tp = ldoc.typename(item:type_of_param(p), item:param_modifiers(p))
|
||||||
|
# local def = item:default_of_param(p)
|
||||||
<li><span class="parameter">$(name)</span>
|
<li><span class="parameter">$(name)</span>
|
||||||
# if tp ~= '' then
|
# if tp ~= '' then
|
||||||
<span class="types">$(tp)</span>
|
<span class="types">$(tp)</span>
|
||||||
|
|
Loading…
Reference in New Issue