文章目录
ZeroBrane Studio简介
ZeroBrane Studio是一个轻量级的Lua IDE,具有代码完成,语法高亮,实时编码,代码分析器以及Lua 5.1,Lua 5.2,Lua 5.3, LuaJIT和其他Lua引擎的调试支持。
它对于经验丰富的开发人员来说功能丰富且可扩展,而且对于初学者来说简单且即时可用(经过测试,没有编程经验的中学生和高中生)。与Eclipse和IntelliJ不同,它占地面积小,可以使用Lua完全自定义。与TextMate和Sublime Text不同,它包含一个远程调试器和一个完整的IDE功能集。与Decoda不同,它可以在Windows,macOS和Linux上运行,并通过设备上的调试支持各种Lua版本。
ZeroBrane Studio还提供了几个独特的功能:用于即时反馈的实时编码,用于提供最少上下文切换的指令的Markdown格式,以及用于学习Lua或熟悉编程的集成交互式材料。
安装包中包含一些在所有支持的平台上为Lua 5.1,5.2和5.3版本编译的最流行的Lua库(luasocket, luafilesystem, luasec和lpeg)。
对于那些对游戏和移动开发感兴趣的人,IDE支持 LÖVE, Corona, Moai, Gideros, Marmalade Quick, Cocos2d-x和其他引擎的调试 。它也支持普通的Lua调试的 OpenResty/Nginx, Redis, Torch7, Wireshark, GSL-shell, Adobe Lightroom, Lapis, Moonscript, home automation以及更多。
ZeroBrane Studio功能亮点
- 小巧,可移植,开源和跨平台(Windows,macOS和Linux);
- 自动完成功能,关键字和自定义API;
- 110多种语言和文件格式的语法高亮和折叠;
- 具有自动刷新功能的项目视图,能够从列表中隐藏文件和目录;
- 交互式控制台,用于测试本地和远程执行的Lua代码片段;
- 集成调试器,支持本地和远程调试,包括跨平台和设备上调试;
- 使用Lua, LÖVE, Gideros, Moai, Corona,GSL-Shell和其他Lua引擎进行实时编码 ;
- 多语言支持,翻译为法语,西班牙语,俄语,德语,中文,世界语,意大利语,保加利亚语和巴西葡萄牙语语言和文档,以添加您自己的语言;
- 50+扩展包在包库 ;
- 模糊搜索的文件,符号,和库函数,函数的轮廓,和更多。
资源下载
- ZeroBrane Studio
最新及历史版下载
下载之后解压即可
- OpenResty环境搭建
请参考OpenResty(Nginx+Lua)高并发最佳实践 中的环境搭建
这里需要安装32位的版本,如果是64位的电脑装64位的后续会出现问题,切记
配置OpenResty与ZeroBraneStudio的关联
- 进入OpenResty下的nginx的配置,并添加以下配置
F:\DATA/software/other/ZeroBraneStudio这部分ZeroBraneStudio的软件路径
lua_package_path 'F:\DATA/software/other/ZeroBraneStudio/lualibs/?/?.lua;F:\DATA/software/other/ZeroBraneStudio/lualibs/?.lua;;';
lua_package_cpath 'F:\DATA/software/other/ZeroBraneStudio/bin/clibs/?.dll;;';
编写测试Lua
- 编写Lua测试文件
require(“mobdebug”).start(“127.0.0.1”)是很重要的一行代码,debug会进入到这行代码的后一行进行调试require("mobdebug").start("127.0.0.1") --用于接收前端数据的对象 local args=nil --获取前端的请求方式 并获取传递的参数 local request_method = ngx.var.request_method --判断是get请求还是post请求并分别拿出相应的数据 if"GET" == request_method then args = ngx.req.get_uri_args() elseif "POST" == request_method then ngx.req.read_body() args = ngx.req.get_post_args() --兼容请求使用post请求,但是传参以get方式传造成的无法获取到数据的bug if (args == nil or args.data == null) then args = ngx.req.get_uri_args() end end --获取前端传递的name值 local name = args.name --响应前端 ngx.say("hello:"..name)
配置OpenResty中Lua文件的关联
-
修改OpenResty的Nginx配置
location /luatest { default_type text/html; #这里的lua文件的路径为绝对路径,请根据自己安装的实际路径填写 #记得斜杠是/这个,从window中拷贝出来的是\这样,这样是有问题的,务必注意 content_by_lua_file F:/DATA/software/other/openresty-1.13.6.2-win32/lualib/testcode/testlua.lua; }
-
重启OpenResty下的Nginx
ZeroBrane Studio调试设置
-
开启ZeroBrane Studio的调试模式
-
添加需要查看的变量
ZeroBrane Studio调试
-
请求OpenResty下的对应Lua的请求地址
如:http://127.0.0.1/luatest?name=Lua
ZeroBrane Studio会进入绿色箭头对应行的代码 -
调试快捷键
- F10 下一行
- Shift+F10 跳过调试
- Ctrl +F10 跳过当前function
- Shift + F5 终止运行
- F6 运行
- F5 debug运行
-
调试
常见问题
- 路径问题
可能会存在Lua的路径错误导致Lua无法正常运行,检查各个配置的路径即可 - 不是有效的 Win32 应用程序
这个就是安装的64位的OpenResty,换成32位的即可
到这里即可使用ZeroBrane Studio进行OpenResty的开发调试了