LuaJump
Enhance Lua code navigation with custom definition provider, code completion, and class inheritance tree.
简介
LuaJump 是一个 VSCode 扩展,专为 Lua 语言开发设计,旨在增强 Lua 代码的阅读和导航体验。通过正则表达式模式自动扫描 Lua 文件,建立自定义的"定义-引用"索引,提供代码跳转、代码补全和类继承树等功能。
主要功能
- 自定义定义跳转:支持为 Lua 文件添加自定义定义,通过 F12 或 Ctrl+点击跳转到定义位置。
- 自动扫描与索引:扩展激活时自动根据配置的路径和正则规则扫描 Lua 文件,建立定义索引。
- 代码补全:基于扫描结果提供智能代码补全提示,支持
self: 方法补全。
- 类继承树:自动构建 Lua 类的继承关系树,支持父类方法同步到子类的补全提示。
- 文件变化监听:Lua 文件增删改时自动更新索引。
配置选项
所有配置项均可在 VS Code 的设置中修改,完整默认值请查看扩展设置界面。
luajump.definitionPatterns
正则表达式数组,用于自动匹配代码中的定义位置,必须包含一个捕获组。
| 匹配目标 |
说明 |
| 函数定义 |
匹配 Lua 的函数声明,如 function Class:Method 及 function Class.Method |
| 事件监听 |
匹配 EventService:ListenEvent(...) 调用 |
| 类声明 |
匹配 local ClassName = DeclareClass 形式的局部类声明 |
| ID 分支 |
匹配 if id == "xxxx" then 条件分支 |
luajump.linkPatterns
正则表达式数组,用于匹配代码链接关系,需要 (A)(.)(B) 三个捕获组,第二组作为补全触发词。
默认匹配 function XxxServiceClass<Name>:<Method> 或 function XxxDataClass<Name>:<Method> 模式的函数声明。
luajump.treePatterns
正则表达式数组,用于匹配类继承关系,需要两个捕获组。
| 匹配目标 |
说明 |
| 类继承声明 |
匹配 DeclareClass("ChildClass", ClassLib.ParentClass) |
| 类方法定义 |
匹配 function ClassName:METHOD(...) |
luajump.searchPaths
Glob 路径数组,用于指定要扫描的 Lua 文件范围。
命令
插件支持以下命令,可以在 VS Code 的命令面板中使用:
luajump.addDefine
- 描述: 添加或移除自定义定义跳转(toggle 行为)。可通过快捷键
Alt+Q、行尾快捷操作或右键菜单触发。
luajump.removeDefine
luajump.clearAllDefine
发布说明
查看 CHANGELOG.md 了解版本更新历史。
| |