牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Windows下使用luaDoc给lua生成文档

作者: 杨粼波
Email: tx7do@yahoo.com.cn


    首先需要安装lua,Windows下自然是安装Lua For Windows咯,下载地址:http://code.google.com/p/luaforwindows/
安装以后它已经包含了luadoc,所以无需我们再去下载,如果非要去下载的话,那么下载地址是:http://luadoc.luaforge.net/

然后,我们需要准备一个批处理文件,叫啥名字无所谓,我是取名叫做buildDoc.bat的,我用doxygen的时候也是叫这个名字的,以下是批处理文件的内容:
@echo on
lua.exe 
"%LUA_DEV%\lua\luadoc_start.lua" -"Docs" *
pause
它做了什么呢?它调用了lua.exe执行了luadoc_start.lua这个脚本,传入的参数-d "Docs"的意思是生成的文档文件夹(输出路径),如果没有则是生成在批处理文件当前路径。第二个参数是需要生成文档的lua脚本文件列表(输入文件),不过我们可以传入了一个*,它会自动解析生成的,让它遍历当前路径的lua文件以及当前路径下面所有的子文件夹的lua文件。

有了这个批处理文件,这个时候我们就可以生成lua的文档了,只需要鼠标轻轻一点就可以了。^_^

以下给出一点lua脚本的示例:
--- 测试用表
-- @class table
-- @name p_GlobalOptions
-- @field opt1 字段1
-- @field opt2 字段2
local p_GlobalOptions 
= {
            opt1 
= nil, 
            opt2 
= nil,
}
这是一个表的简单示例,其中
-- @class table 
         是表明其类型是一个表,
-- @name 
         p_GlobalOptions是表名,
-- @field opt1 字段1
         说明第一个字段是什么。
-- @field opt2 字段2
         说明第二个字段是什么。

--------------------------------------------------------------------------------------
-- @name test
-- @description 嗯。。。这是一个测试方法的方法
-- @param param1 参数1
-- @param param2 参数2
-- @return 没有返回值哦
-- @usage test()
-- @see p_GlobalOptions 
--------------------------------------------------------------------------------------
function test(param1, param2)
end
-- @param param1 参数1
         说明参数1;
-- @return 没有返回值哦
         说明了返回值
-- @usage test()
         这里是给出一个示例代码来;
-- @see p_GlobalOptions
         可以生成一个超链接,表明这个方法和p_GlobalOptions是有关,你可以去查看。
其实还可以改改这么写:
--------------------------------------------------------------------------------------
-- @class function
-- @name test
--------------------------------------------------------------------------------------
-- @description 嗯。。。这是一个测试方法的方法
-- @param param1 参数1
-- @param param2 参数2
-- @return 没有返回值哦
-- @usage test()
-- @see p_GlobalOptions 
--------------------------------------------------------------------------------------
即,表明其类型是一个function,名字叫做test。
@class有三个参数:function, table 和 module。分别表示是:方法,表和模块。

具体文档请参见: http://luadoc.luaforge.net/manual.html


-------------------------------------------------------------------------------------------------------------
来点闲话,最近工作已经放到了使用lua做开发上面去了,没办法,广州这边的游戏公司基本上都是用脚本做大部分事情。
至于为什么要这样倚重脚本,无非就是:出于人员培训的考虑,出于快速开发的考虑……
没有复杂的数据类型,甚至于其实根本不用管数据类型是什么,因为它是一个弱类型的语言……
只有一个数据结构:table,可以做变长数组,可做hash表,甚至用于模拟Class……
你可以不用声明类型,它可以叫做“使用即声明”。你一不小心把名字写错了,解释器还不报错:这是合法的。想要捕获这种错误,还需要一些技巧性的解决方法。
没有像VS那样好用的IDE(因为我自始自终都在用着这个让人惰性化的工具),虽然有UEStudio、EditPlus、NotePad++、SciTe、GVIM、LuaEdit,甚至于Eclipse也可以用,但是,始终不觉得好用。
调试起来也不大方便,不过还好有Decoda这个支持远程调试器的好东西,至少还有的用。
不管怎样,
弱类型有弱类型的好处,实现委托不是那么困难的事情了,也不需要使用像boost:any这样的玩意了。C++中所需要思考的东西一下子不再需要去烦扰了。
不过我却依然快不起来,语言上所要困扰的东西虽然少了许多,但是习惯它总是需要时间的。
而且,融入新团队,沟通,这些开发中的成本始终是存在的,不管用什么编程语言,不管做什么项目,不管在什么公司……

posted on 2010-07-25 04:48 杨粼波 阅读(3697) 评论(2)  编辑 收藏 引用 所属分类: 原创文章

评论

# re: Windows下使用luaDoc给lua生成文档 2010-07-25 11:45 战魂小筑

很好的文章,luadoc确实很好用  回复  更多评论   

# re: Windows下使用luaDoc给lua生成文档 2010-07-25 19:12 杨粼波

还好,比起doxygen,还是很难用的。
支持的标签还很少,
比如@file @virsion 等等……
需要自己扩展一下才行。

不过,有比没有好呀。。。。  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理