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的描述。 //? @shortdesc Function1的描述。 |
标签
以下是所有可能的ScarDoc标签列表。