试了几个Lua IDE后,Lua Studio、Lua Glider、VS+babelua插件、Sublime都不是特别满意。直到发现了国人自创的另一个神奇工具:基于IDEA的EmmyLua插件。该插件功能非常完整:断点调试、自动提示、代码跳转、智能重命名等,可以极大地提高Lua编程的速度。界面也比较舒服。
安装步骤
下载、安装并破解IntelliJ IDEA(我的版本是目前最新的2017.3.4)
安装EmmyLua插件
建议直接在IDEA工具内搜索插件安装(当然也可以下载插件到硬盘安装)。
(1)在启动界面点击Configure-Plugins:
(2)搜索EmmyLua,然后点Search in repositories:
(3)点击右边的Install绿色按钮。安装完需要重启IDEA。
配置SDK,默认是Path路径需要有一个Lua解释器(lua.exe)。你可以在创建项目时指定其他目录。
配置其他事项。
(1)将*.txt识别成lua文件:
(2)忽略代码提示大小写差别:
创建项目
创建普通Lua项目(不依赖其他程序,如游戏引擎):
New-Project,然后next,填项目名、路径,点击finish。
在项目视图的src文件夹New一个Lua文件,可以自己print()一下,Run一下,看看有没有输出,有的话,说明SDK配置正确。
创建Unity引擎Lua项目
New-Modules from existing sources(注意不要选错,这里创建的是Modules,不是Project,否则等下导入不了api自动提示的library)。【这里有一个IDE Bug:第一次创建Modules,会在文件夹里生成一个.iml文件。但是如果文件夹里本来就有.iml文件,以后再点Modules from existing sources就会无法生成Modules,也就无法导入library。这个Bug我折腾了一晚上才发现的!必须删掉.iml文件,才可以重新创建Modules】
然后选择Unity文件夹的Lua访问根目录,我选的是Resources文件夹,因为可以从Resources作为根目录搜索lua文件。
然后我们测试一下断点调试功能。打开其中一个Lua文件,设置断点:
然后Run-Attach To Local Process:
选择Unity进程,触发断点,说明能断点调试:
Unity API代码提示
现在Unity API代码提示是没有的,因为我们还没导入API描述的library。这个library根据你选择的Lua中间件不同而不同,所以建议是自己导出。我的Lua中间件是SLua。这里以SLua为例。
1.打开SLua官方自带的Unity项目,在Slua-Editor下面,新建一个SLuaApiExporter.cs脚本:
2.输入如下代码:官方QQ群里面会有
3.在Unity编辑器中点击SLua-导出EmmyLuaApi
4.看到Unity工程项目会多出一个EmmyApi文件夹:
5.将其打包成zip文件(注意不能是rar、7z其它压缩格式!)
6.在IDEA中点击File-Project Structure,Modules-选择我们的Modules-Dependencies,+号-Library-Lua Zip Library,选择我们刚才打包的zip文件。然后一直OK保存就行了。
7.测试Unity API提示功能:
成功!
其它功能
代码跳转:
智能重命名:
后续
本教程就到这里结束了,但是该插件还有许多有用的功能,可以自行探索,也可以加入EmmyLua的官方QQ群:29850775。群里面有许多教程,本文所用的API导出代码也是从群文件里拿出来改的。
github: https://github.com/tangzx/IntelliJ-EmmyLua
oschina: http://git.oschina.net/tangzx/IntelliJ-Lua
IDEA Plugins : https://plugins.jetbrains.com/plugin/9768-emmylua