blob: f7fd6f24229db7bb98bd38b6974000a6a7400e6d [file] [log] [blame]
--------------------------------------------------------------------------------
-- Copyright (c) 2012 Sierra Wireless.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v1.0
-- which accompanies this distribution, and is available at
-- http://www.eclipse.org/legal/epl-v10.html
--
-- Contributors:
-- Kevin KIN-FOO <kkinfoo@sierrawireless.com>
-- - initial API and implementation and initial documentation
--------------------------------------------------------------------------------
return
[[<dl class="function">
<dt>
# --
# -- Resolve item type definition
# --
# local typedef
#if _item.parent and _item.type and _item.type.tag == 'internaltyperef' then
# if _item.parent.tag == 'recordtypedef' then
# local file = _item.parent.parent
# typedef = file.types[ _item.type.typename ]
# elseif _item.parent.tag == 'file' then
# typedef = _item.parent.types[ _item.type.typename ]
# end
#end
# --
# -- Show item type for internal type
# --
#if _item.type and (not typedef or typedef.tag ~= 'functiontypedef') then
# --Show link only when available
# local link = fulllinkto(_item.type)
# if link then
<em>$( link )</em>
# else
<em>$(prettyname(_item.type))</em>
# end
#end
<a id="$(anchor(_item))" >
<strong>$( prettyname(_item) )</strong>
</a>
</dt>
<dd>
# if _item.shortdescription then
$( format(_item.shortdescription) )
# end
# if _item.description and #_item.description > 0 then
$( format(_item.description) )
# end
#
# --
# -- For function definitions, describe parameters and return values
# --
#if typedef and typedef.tag == 'functiontypedef' then
# --
# -- Describe parameters
# --
# local fdef = typedef
#
# -- Adjust parameter count if first one is 'self'
# local paramcount
# if #fdef.params > 0 and fdef.params[1].name == 'self' then
# paramcount = #fdef.params - 1
# else
# paramcount = #fdef.params
# end
#
# -- List parameters
# if paramcount > 0 then
<h$(i)>Parameter$( paramcount > 1 and 's' )</h$(i)>
<ul>
# for position, param in ipairs( fdef.params ) do
# if not (position == 1 and param.name == 'self') then
<li>
# local paramline = "<code><em>"
# if param.type then
# local link = linkto( param.type )
# local name = prettyname( param.type )
# if link then
# paramline = paramline .. '<a href=\"' .. link .. '\">' .. name .. "</a>"
# else
# paramline = paramline .. name
# end
# end
#
# paramline = paramline .. " " .. param.name .. " "
#
# if param.optional then
# paramline = paramline .. "optional" .. " "
# end
# if param.hidden then
# paramline = paramline .. "hidden"
# end
#
# paramline = paramline .. "</em></code>: "
#
# if param.description and #param.description > 0 then
# paramline = paramline .. "\n" .. param.description
# end
#
$( format (paramline))
</li>
# end
# end
</ul>
# end
#
# --
# -- Describe returns types
# --
# if fdef and #fdef.returns > 0 then
<h$(i)>Return value$(#fdef.returns > 1 and 's')</h$(i)>
# --
# -- Format nice type list
# --
# local function niceparmlist( parlist )
# local typelist = {}
# for position, type in ipairs(parlist) do
# local link = linkto( type )
# local name = prettyname( type )
# if link then
# typelist[#typelist + 1] = '<a href="'..link..'">'..name..'</a>'
# else
# typelist[#typelist + 1] = name
# end
# -- Append end separator or separating comma
# typelist[#typelist + 1] = position == #parlist and ':' or ', '
# end
# return table.concat( typelist )
# end
# --
# -- Generate a list if they are several return clauses
# --
# if #fdef.returns > 1 then
<ol>
# for position, ret in ipairs(fdef.returns) do
<li>
# local returnline = "";
#
# local paramlist = niceparmlist(ret.types)
# if #ret.types > 0 and #paramlist > 0 then
# returnline = "<em>" .. paramlist .. "</em>"
# end
# returnline = returnline .. "\n" .. ret.description
$( format (returnline))
</li>
# end
</ol>
# else
# local paramlist = niceparmlist(fdef.returns[1].types)
# local isreturn = fdef.returns and #fdef.returns > 0 and #paramlist > 0
# local isdescription = fdef.returns and fdef.returns[1].description and #format(fdef.returns[1].description) > 0
#
# local returnline = "";
# -- Show return type if provided
# if isreturn then
# returnline = "<em>"..paramlist.."</em>"
# end
# if isdescription then
# returnline = returnline .. "\n" .. fdef.returns[1].description
# end
$( format(returnline))
# end
# end
#end
#
#--
#-- Show usage samples
#--
#if _item.metadata and _item.metadata.usage then
$( applytemplate(_item.metadata.usage, i) )
#end
</dd>
</dl>]]