Snail Helper
一个针对蜗牛项目的 VS Code 扩展工具集,提供快捷修复、文件头插入、基于模板创建界面文件等能力。
功能一览
- Quick Fix(Ctrl+.):在 Lua 文件中提供“快速修复”入口,调用修复逻辑
- 命令面板与右键菜单:
- 修复警告代码(ID:
snail.fixWarningCode)
- 插入文件头(ID:
snail.insertFileHeader)
- 基于模板创建界面(ID:
snail.createUIFormTemplate)
- 诊断与定向修复:
- UI 界面 onGetFocus:若下一条有效代码行未调用
ClassName.super.onGetFocus(...),给出警告并提供一键插入修复(自动补齐 self 与参数)
- 函数式父类声明:当
class(PURE_FILE, function() return Base:create(PURE_FILE) end) 且 Base 非 cc.*,给出警告并一键替换为 class(PURE_FILE, Base)
- UI 中的背景音乐调用:在 UI 文件内不推荐调用
AudioM.playBgMusic(...) / AudioM.changeBgMusic(...),给出警告
- UI 中的 registerScriptHandler:在 UI 文件内不建议使用
self:registerScriptHandler(function(ev) ... end) 重写父类注册逻辑,给出警告并提供拆分到 onEnter() / onExit() 的一键修复
激活方式
- 打开 Lua 文件(
onLanguage:lua)或编辑器启动完成(onStartupFinished)时激活
- 在 Lua 文件内按 Ctrl+. 将看到“Snail Quick Fix”
命令说明
修复警告代码(snail.fixWarningCode)
- 作用:对“当前行”进行一系列重构/替换
- 宏替换:按配置将宏名替换为枚举式写法(如
BG_STYLE_NOTEBOOK → BgStyle.NOTEBOOK)
- TextStyleM:将
TextStyleM.setTextStyle(...) 转换为 TextStyleM.setTextStyleNew(...) 并重排参数
- 全局函数调用:按映射表将全局方法替换为命名空间方法(如
showItemDesc → FormUtil.showItemDesc)
- 触发方式:
- 命令面板执行
- 快捷键:
Ctrl+Shift+L(macOS: Cmd+Shift+L)
- Lua 文件中通过 Ctrl+. 快速修复列表
插入文件头(snail.insertFileHeader)
- 作用:在光标处(或当前选区)插入一段标准化的文件头注释
- 支持:
.lua / .c / .cpp / .h / .hpp / .cc
- 注释前缀会根据语言自动选择
-- 或 //
- 快捷键:
Ctrl+Alt+H(macOS: Cmd+Alt+H)
基于模板创建界面(snail.createUIFormTemplate)
- 作用:基于模板生成 Lua 界面文件,替换占位符并打开生成的主文件
- 用法:在资源管理器中右键目标文件夹,或执行命令后选择目标目录
- 模板文件:默认读取主工程下
client/tool/scripts_template/UITemplate.txt
诊断与自动修复规则
设置项(Settings)
以下设置可在“设置”中搜索 snail 调整:
snail.base.rootDir(字符串,默认 ./)
snail.template.templateDir(字符串,资源作用域)
- 含义:界面模板所在目录(可相对
rootDir 或绝对路径)
- 说明:未设置时,命令会使用内置默认路径
./client/tool/scripts_template
snail.fix.functionReplacement(对象,资源作用域)
snail.fix.macroReplacement(对象,资源作用域)
注意事项
- Quick Fix 仅在 Lua 文件且当前行非空时可看到条目
- 模板路径不存在时会给出提示,请检查
snail.base.rootDir 与 snail.template.templateDir
代码补全(UI 模板)
在 UI 类 Lua 文件内,输入标识符时会提供以下模板补全(按当前单词范围替换,缩进与类名自动匹配):
- onEnter:进入界面函数
- onExit:退出界面函数
- getBgMusic:返回界面 BGM 信息
- onGetFocus:获得焦点
- onLoseFocus:失去焦点
兼容性
| |