我正在为游戏 Bitfighter (http://bitfighter.org) 记录一个新的和扩展的 Lua API。我们的 Lua 对象模型是 C++ 对象模型的子集,而我需要记录的向 Lua 公开的方法是 C++ 中可用方法的子集。我只想记录与 Lua 相关的项目,而忽略其余部分。
例如,对象 BfObject 是所有 Lua 对象的根,但它本身位于 C++ 对象树的中间。BfObject 有大约 40 个 C++ 方法,其中大约 10 个与 Lua 脚本编写者相关。我希望我们的文档将 BfObject 显示为根对象,并且只显示这 10 个相关方法。我们还需要以一种明确方法继承的方式显示其子对象。
目前我们可以假设所有代码都是用 C++ 编写的。
一个想法是以某种方式标记我们想要记录的对象,以使诸如 doxygen 之类的系统知道要查看什么并忽略其余部分。另一种方法是预处理 C++ 代码,以删除所有不相关的位,并用 doxygen 之类的东西记录剩余的内容。(实际上,我使用 luadoc 的这种方法已经走了很远,但找不到让 luadoc 显示对象层次结构的方法。)
一件可能有帮助的事情是每个 Lua 对象类都以一致的方式注册,以及它的父类。
有越来越多的游戏使用 Lua 编写脚本,其中许多都有不错的文档。有人对如何制作它有好的建议吗?
PS 澄清一下,我很乐意使用任何可以完成这项工作的工具——doxygen 和 luadoc 只是我比较熟悉的示例。