使用ScarDoc

ScarDoc可用于添加自动文档化的C++和Lua函数。  要让函数显示在此网页中,您只需在函数上方添加一些特殊注释即可。  您可以在函数上使用多种不同的标签;有些是必需的,而其他则是可选的。

使用ScarDoc为Lua函数编写文档时,必须为函数的参数和返回值提供类型信息。  这样ScarDoc才能知道需要向函数传递哪些类型。  用于指定这些信息的标签是@result和@args。

示例 1.1:使用ScarDoc注册Lua函数
--? @shortdesc 设置玩家的种族。
--? @extdesc
--? 种族名称必须是属性编辑器中的有效种族名称。\n\n
--? 如果raceName不存在,此函数将返回false。\n\n
--? 此注释将位于新段落中。
--? @result Void
--? @args PlayerID playerID, String raceName
--? @refs PlayerRaces.txt, SomeOtherDoc.doc
function Player_SetRace( playerID, raceName )
    --
end

为C++函数编写文档则更为直接,因为类型信息已在C++语言中指定。  由于C++类型名称可能看起来非常复杂,ScarDoc会将C++类型名称转换为"设计者友好"的类型名称。  这样,如果Lua绑定函数接受"const Math::Vector3f  *"作为参数,编写脚本的人员无需担心其所有含义。  在这种情况下,它将显示为更友好的名称,如"PositionRef"。  要查看所有类型及其转换列表,请转到>>待完成<<。 

示例 1.2:使用ScarDoc注册C++函数
//? @shortdesc 设置玩家的种族。
//? @extdesc
//? 种族名称必须是属性编辑器中的有效种族名称。\n\n
//? 如果raceName不存在,此函数将返回false。\n\n
//? 此注释将位于新段落中。
//? @refs PlayerRaces.txt, SomeOtherDoc.doc
static bool Player_SetRace( Player * playerID, const char * raceName )
{
}

函数还可以分类到命名的子组中。  这些是您在函数列表中看到的子组。要设置当前组,请使用@group标签。  一旦设置了组,文件中该标签下方的所有函数都将添加到此组中。  如果找到另一个@group标签,这将更改当前组,函数现在将添加到该组中。  如果不指定组,函数将添加到"Various"(杂项)组。

示例 1.3:使用@group标签
/* 在此示例中,"Group1"将包含Function1和Function2,"Group2"将包含Function3和Function4。  Function0将被添加到"Various" */

//? @shortdesc Function0的描述。
static void Function0( ){}


//? @group Group1

//? @shortdesc Function1的描述。
static void Function1( ){}

//? @shortdesc Function2的描述。
static void Function2( ){}


//? @group Group2

//? @shortdesc Function3的描述。
static void Function3( ){}

//? @shortdesc Function4的描述。
static void Function4( ){}

 

标签

以下是所有可能的ScarDoc标签列表。