全面了解 EmmyLua Analyzer Rust 的强大功能

EmmyLua 提供了业界领先的智能代码补全功能,不仅支持基础的函数、变量、表字段、模块补全,更包含多项创新特性。
|
|
|
|
| 功能 | 描述 | 示例 |
|---|---|---|
| 📁 Module Path | require 参数智能补全,支持 . 和 / 分隔符 |
require("utils.string") |
| 💾 File System | 检测路径字符串,提供文件系统补全 | "./config/settings.lua" |
- 🔧 Postfix: 变量后输入
@或.触发表达式补全 - 📝 Snippet: 内置代码片段,未来支持自定义模板系统
💡 提示: 所有补全功能都支持模糊匹配和智能排序,让您的编码体验更加流畅。
智能的鼠标悬浮提示系统,为您提供丰富的上下文信息和代码洞察。
- 🔍 变量信息: 类型、作用域、定义位置
- ⚡ 函数签名: 参数类型、返回值、文档注释
- 📊 表字段: 字段类型、访问权限、继承关系
- 📦 模块信息: 导出内容、依赖关系、版本信息
local PI = 3.14159 -- 悬浮显示: local PI: number = 3.14159
local AREA = PI * 2 -- 悬浮显示: local AREA: number = 6.28318💡 小贴士: 常量计算功能支持复杂的数学表达式和字符串操作,帮助您更好地理解代码逻辑。
基于 EmmyLua 注解的强大静态分析系统,帮助您在编码过程中发现潜在问题并保持代码质量。
|
文件级别禁用 ---@diagnostic disable: undefined-global
-- 在整个文件中禁用 undefined-global 检查 |
单行禁用 ---@diagnostic disable-next-line: undefined-global
-- 仅在下一行禁用检查 |
通过配置文件精细控制检查行为:
{
"diagnostics": {
"disable": ["undefined-global", "unused-local"],
"enable": [],
"severity": {
"undefined-global": "error",
"unused": "warning"
}
}
}强大的代码导航系统,让您在大型项目中快速定位和浏览代码。
在 VS Code 中通过多种方式访问:
- 📊 OUTLINE 面板: 左侧边栏结构化视图
- ⌨️ 快捷键:
Ctrl+Shift+O快速打开符号列表 - 🔍 实时筛选: 输入关键字快速定位符号
|
|
| 方式 | 操作 | 描述 |
|---|---|---|
| ⌨️ 命令 | Go to Definition |
标准 LSP 跳转 |
| 👁️ 预览 | Peek Definition |
弹窗预览定义 |
| 🖱️ 点击 | Ctrl + 左键 |
快速跳转 |
- 🔍 查找所有引用:
Find All References - 🖱️ 快速查找:
Ctrl + 左键
graph LR
A[字符串引用] --> B[精确匹配]
C[模糊引用] --> D[智能推断]
E[配置控制] --> F[可选启用]
- 📝 字符串引用: 查找字符串字面量的使用位置
- 🎯 模糊引用: 无定义变量的智能匹配
- ⚙️ 配置控制: 通过配置文件控制启用状态
💡 提示: 引用查找支持跨文件分析,能够准确识别模块间的依赖关系。
安全高效的代码重构工具,帮助您在不破坏代码逻辑的前提下优化代码结构。
| 特性 | 描述 |
|---|---|
| 🔍 作用域分析 | 精确识别变量作用域,避免误重命名 |
| 📁 跨文件检测 | 检测模块导入导出的重命名影响 |
| 提前发现命名冲突并给出建议 | |
| 📋 预览功能 | 重命名前预览所有受影响的位置 |
基于 EmmyLuaCodeStyle 的代码格式化系统。
|
|
- 🔧 函数折叠:
function ... end - 🔀 控制流折叠:
if,for,while等 - 📊 表折叠: 大型表结构折叠
--region 自定义折叠区域
-- 这里是需要折叠的代码
local config = {
-- 配置项...
}
--endregion💡 配置提示: 详细的格式化配置选项请参考 EmmyLuaCodeStyle 文档。
智能识别和处理代码中的各种链接,提升开发效率。
|
|
-- 文件路径自动识别为可点击链接
local config_path = "./config/settings.lua"
local image_file = "assets/images/logo.png"| 功能 | 描述 | 示例 |
|---|---|---|
| 📂 文件打开 | 点击路径直接打开文件 | "./utils/helper.lua" |
多层次的视觉增强功能,让代码更加清晰易读。
|
🔍 Token 分析
|
🎨 视觉区分
|
通过专有协议实现的高级代码渲染功能:
local mutable_var = 10 -- 可变变量:下划线标记
local const_value = 42 -- 常量:普通显示- 📏 可变变量下划线: 可变的 local 变量自动添加下划线
- 🎨 类型着色: 根据类型系统进行智能着色
- ⚡ 实时更新: 代码修改时实时更新渲染效果
| 提示类型 | 描述 | 示例 |
|---|---|---|
| 🏷️ 参数类型 | 显示函数参数的类型信息 | function(name: string) |
| 📊 变量类型 | 显示变量的推断类型 | local count: number |
| 🔄 重写标记 | 标记重写的父类方法 | override function() |
| ⚡ 异步调用 | 标记 await 异步调用 | await coroutine() |
{
"inlayHints": {
"enable": true,
"paramHint": true,
"indexHint": true,
"localHint": false,
"overrideHint": true
}
}虽然编辑器提供基础高亮,EmmyLua 提供更精确的高亮支持:
|
📍 引用高亮
|
🏷️ 关键字组
|
为其他编辑器提供与 VS Code 同等的高亮体验,确保一致的开发体验。