▒ 目录 ▒
- 🛫 问题
- 描述
- 环境
- 1️⃣ IDE界面说明
- 项目目录
- 编辑器
- 控制台窗口
- 输出窗口
- 选择解释器
- 堆栈窗口
- 监视窗口
- 大纲窗口
- 2️⃣ 调试程序
- 3️⃣ 自定义lua解释器
- 编译自己的lua解释器
- 增加interpreters配置文件
- 重启IDE
- 4️⃣ 其它IDE比较
- Lua Editor
- VSCode
- 🛬 结论
- 📖 参考资料
🛫 问题
描述
一直以来,写lua脚本都是做些小项目,也就十几个文件,然后写个批处理合并下文件,将代码编译后使用。
调试方法就是打日志,各种日志。
然而,这样的调试极其不利于长期开发,决定找个IDE,也就是今天的主角:ZeroBrane Studio
。
环境
版本号 | 描述 | |
---|---|---|
文章日期 | 2023-06- | |
操作系统 | Win11 - 21H2 - 22000.1335 | |
ZeroBrane Studio | 1.9.0 | |
lua.exe | 5.4 | |
1️⃣ IDE界面说明
先上个全图
项目目录
当前项目目录将显示在“项目”面板中。 项目面板以多种方式为您提供帮助:它提供项目中所有文件的鸟瞰图,突出显示您正在使用的文件(只要它在同一项目中),并允许您通过选择文件名称并按 或双击它来打开文件。
切换项目目录,有很多方法:
- 使用下拉列表选择之前使用的项目目录之一,
- 在项目面板顶部的下拉列表中键入或复制新路径,
- 转到并设置新目录,或Project | Project Directory | Choose…
- 转到以将其设置为与当前文件的路径相同的目录。Project | Project Directory | Set From Current File
编辑器
IDE 允许您打开多个程序或文件并同时处理它们。
像其它编辑器一样,支持快捷键:
- windows下:Ctrl-W
- MacOS下:Cmd-W
控制台窗口
控制台窗口
允许您运行 Lua 代码片段并计算 Lua 表达式的值。
它将在本地控制台之间自动切换,该控制台允许您访问运行 IDE 的 Lua 解释器,以及一个远程控制台,允许您在调试器中停止应用程序时执行代码片段并更改应用程序中的变量值。
输出窗口
“输出”窗口捕获您运行的程序的输出,以及您在执行这些程序期间可能收到的任何错误和其他消息。
“输出”窗口还用于输入程序可能读取的文本。您将在“输出”窗口中看到一个提示,其中需要输入文本。
选择解释器
IDE 支持不同的 Lua 引擎,这些引擎在运行或调试时可能需要不同的参数或设置。
这些设置由解释器指定,可以通过转到并从列表中选择所需的解释器来选择解释器。 这不仅设置了应用程序的运行和调试环境,还设置了自动完成、暂存器和其他依赖于引擎的设置。
切换方式:
- 菜单方式:Project | Lua Interpreter
- IDE右下角选项
堆栈窗口
“堆栈”窗口不仅提供带有函数名称的调用堆栈,而且还显示每个堆栈帧的所有局部变量和上行值。 您甚至可以向下钻取以获取表中各个元素的值。
监视窗口
“监视”窗口提供了一种在调试器中每次停止后计算变量和表达式的便捷方法。 还可以向下钻取以获取表中各个元素的值。
大纲窗口
“大纲”窗口提供了一种查看当前文件结构的方法,其中所有函数及其参数按在文件中定义的顺序(默认)或排序列表显示。
2️⃣ 调试程序
除了运行程序之外,您还可以调试它们,这使您能够暂停它们、检查变量、计算表达式、更改值,然后继续。
- 下断点:
当程序运行时,可以通过转到 来暂停它,这将在下一个执行 lua 命令时停止程序。
- 通过菜单方式
- 通过工具栏
- 通过快捷键:
Ctrl+F9
调试器停止后,可以设置/删除断点(使用 )、单步执行代码(使用 、 和命令)。
使用“监视”窗口检查变量、使用“堆栈”窗口查看调用堆栈、在控制台中运行 Lua 命令、运行到光标位置 , 并继续执行程序(使用 )。
3️⃣ 自定义lua解释器
开发中,经常自己导出一些lua接口,怎样使用自己的解释器呢?
编译自己的lua解释器
这个就不详细讲了,可以通过lua api自己导出,也可以通过三方库导出,比如:
kaguya
然后将自己的lua解释器放到IDE的bin目录下,如下图是小编自己改的解释器:
增加interpreters配置文件
以lua54为例,在目录
interpreters
中增加配置文件luadeb54.lua
。
文件内容为
dofile 'interpreters/luabase.lua'
local interpreter = MakeLuaInterpreter(5.464, ' 5.464')
interpreter.skipcompile = true
return interpreter
重启IDE
最后重启IDE即可使配置生效。
4️⃣ 其它IDE比较
Lua Editor
- 优点:支持简体中文,无需专门配置环境,图形化操作较为完善,且启动速度快,运行调试上对初学者极为友好
- 缺点:这个是商业闭源软件,十几年前就已在github停止更新了,启动时会出现浏览器弹窗。
VSCode
- 优点:有各种第三方插件,生态完善
- 缺点:对既不熟悉Lua也不熟悉VSCode的初学者来说(其稍微进行点操作就卡的不行这点更是对初学者信心的极大打击),快速上手有不小的难度,自定义成适合Lua跑的状态需要费点心思,但熟悉以后要在VSCode中跑lua会相当顺手。
推荐教程(上手VSCode运行调试Lua代码必看):《Visual Studio Code -> VSCode 开发环境搭建 ---- Lua 开发环境搭建 及 代码运行(code runner 插件)https://blog.csdn.net/yanwennian/article/details/103480938》
🛬 结论
这里就说下
ZeroBrane Studio
的优势吧。
- 可以调试了,能查看各种堆栈、局部变量等,十分方便定位问题。
- 支持远程调试,厉害了。
- 支持指定不同的lua解释器,包含各种游戏框架的(LÖVE, Corona, Moai, Gideros, Marmalade Quick, Cocos2d-x)。
- 跨平台(Windows、macOS 和 Linux)
- 代码提示(函数、关键字和自定义 API )
- 交互式控制台,用于通过本地和远程执行来测试Lua代码片段
- 本身开源,可以作为学习使用
- IDE本身通过lua开发,含有大量学习代码
- 支持各种开发库,不用重复造轮子:https://github.com/pkulchenko/ZeroBranePackage
还需要说一点是,开发过程中,要使用英文路径,否则会报错的。
📖 参考资料
- 官方文档: https://studio.zerobrane.com/documentation
- 【踩坑记录】三款Lua IDE工具对比 https://blog.csdn.net/Seekladoom/article/details/125176936
- 支持开发库:https://github.com/pkulchenko/ZeroBranePackage