一、 使用Notepad++实现基本的代码编写环境
由于使用引擎开发应用最主要的工作就是编写各种.xml和.lua文件,而Notepad++提供对这两种文件良好的手工编写支持,均有语法高亮和自动的格式调整,所以推荐大家使用Notepad++作为界面引擎主要的编码工具。
下面我的Notepad++开发环境的搭建步骤:
1. 先去Notepad++的官方网站下载最新版本的Notepad++。
2. 安装完成后运行,这个时候我会立刻下一些比较好用的插件,点击菜单 插件->Plugin Manager->Show Plugin Manager
3. Notepad++真的有很多插件,这里我先安装NppExec(支持在Notepad++里调用其它.exe)和Explorer(能在Notepad++里直接操作资源管理器)
4. 下载安装完成后重启Notepad++
5. 在工具栏上点

,就能打开Explorer插件了。下面是效果
是不是很有IDE的感觉了,注意框起来的这几个按钮,都是一些非常好用的功能
6. 下面接着配置NppExec,能让我们在Notepad++里使用外部工具编译或运行lua,检查xml.这里以编译引擎的xml为例子,介绍一下。引擎提供了一个叫xluecl.exe的工具(包含在SDK\tools目录中),可以做很多事情,其中之一就是检查一个引擎的xml是否有可检查的问题,并检查这个xml的后端lua文件的语法正确性。相关工具都在tools目录下,有3个exe.
7. 先把tools目录复制到本地,比如说放到D:\Dev\Tools\,然后我们通过命令行
D:\Dev\Tools\xluecl.exe -xml Progress.xml 这样的调用就可以检查一个xml的编写了。
8. 在Notepad++的菜单 插件->Nppexec->Execute… (注意你在第3步一定要装好了这个插件)
然后输入:
$(FULL_CURRENT_PATH) 是Notepad++的一个宏,代表当前编辑的文件的完整路径。点save… 按钮,给这个命令行取一个名字叫 xluecl xml. 然后按OK就可以试运行了,我故意写错一个xml,下面是运行结果:
非常方便的就找到错误所在了。
9. 下次要用这个命令行还是要不停的点这么多菜单,未免有点烦。这个时候可以通过Notepad++的命令宏功能把刚刚的命令行放到菜单里,并绑定快捷键。点击菜单 插件->Nppexec->Advanced Option…
在Associated script里选择刚刚保存的命令行,然后点Add/Modify按钮。然后勾上Place to the Macros submenu.点OK关闭窗口。按提示重启Notepad++.现在可以在菜单里看到:
.png)
你可以快速的使用该操作去编译.xml了。
10. 绑定快捷键只需要点菜单 设置->管理快捷键
这里就不详细说明了,相信聪明的你已经知道该怎么办了。
11. 搞定了一个操作之后,后面就如法炮制了。这是我的外部调用列表:
luac |
D:\Dev\Tools\luac.exe "$(FULL_CURRENT_PATH)" |
Run lua |
D:\Dev\Tools\lua.exe "$(FULL_CURRENT_PATH)" |
xluecl xar |
D:\Dev\Tools\xluecl.exe -xar "$(CURRENT_DIRECTORY)" |
xluecl xml |
D:\Dev\Tools\xluecl.exe -xml "$(FULL_CURRENT_PATH)" |
二、 使用Decoda 调试Lua代码 (由于安全原因我们对Lua环VM做了一些调整,现在的Decoda调试暂被关闭,过几个版本会打开 )
这个工具比较简单,一切顺利的话会得到和vs相近的调试体验。
Copy Decoda目录到本地,运行Decoda.exe.点菜单 Debug->Start Debuging,然后在弹出的对话框的Command里选择你要调试的应用程序的路径(这里我以迅雷7为例子)。点OK后就以调试lua脚本的方式启动了迅雷。这个时候,调试器里会显示已经加载的lua文件的列表:
打开一个文件,然后按F9下断点…这个就不介绍了。
Decoda这个软件本身对lua的编辑支持的也不错,有自动完成功能。迅雷7项目组有不少哥们就很喜欢用这个工具来编辑.lua而不是notepad++.
用Decoda调试有一些需要注意的地方:
1) 文件列表里只会显示已经加载的文件,由于引擎使用了大量的按需加载机制,所以很多时候你会发现左侧没有你想下断点的文件。想办法让你的脚本执行一次,左侧就有了。
2) 调试非日志版,由于lua文件被编译了,所以看不到代码。
3) 注意调试时发现了bug,请不要在Decoda里修改保存,因为Decoda并不知道文件的绝对路径。
4) 这个调试器的大部分快捷键和功能都和vs很像,相信大家一定能很快上手的。