Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

jx3-EmmyLua (C++ Native)

根据微软官方要求,为避免和原插件名称混淆,本插件名称添加后缀(C++ Native)

高性能 C++ Lua 语言服务器,专为 VS Code 超大工程优化。
拥有全新的图形化调试界面、引用查找和定义跳转等增强功能。
本项目基于 EmmyLua 早期版本深度重构。

  • 将语言解析由 Java 改为 C++ 实现,移除 Java 依赖
  • 优化了索引建立效率,对超大 Lua 工程能够高效加载
  • 实现了引用查找、定义跳转等原版缺失功能
  • 优化了函数参数提示方式,去除多余的提示信息
  • 优化了调试拉起流程,有对应 UI
  • 调试时支持端口选择器,自动记录最近使用的端口
  • 新增输出通道,方便排查问题

更新日志

CHANGELOG

FAQ:

Q: 为什么附加调试没有作用?

A: 附加调试会试图获取进程内的lua符号,判断当前的lua版本,用于调试计算等。所以要求进程本身导出lua符号

Q: Emmy New Debug为什么连不上目标

A: 通常是由于插入代码require执行失败,或者require("emmy_core")返回true,这表明可执行文件没有导出lua符号

Q: 项目中有很多大文件并不想参与解析如何排除?

A: 在项目根目录创建emmy.config.json然后如下填写:

{
    "source": [
        {
            "dir": "./",
            "exclude": [
                "csv/**.lua"
            ]
        }
    ]
}

许可证

本项目基于 MIT 许可证开源。详情请参阅 LICENSE 文件。

logo

jx3-EmmyLua (C++ Native)

A high-performance C++ Lua language server optimized for large-scale VS Code projects.
Features a new graphical debugging UI, reference search, go-to-definition, and more.
This project is a deep re-architecture based on an early version of EmmyLua.

  • Changed language parsing from Java to C++, removing Java dependency
  • Optimized index building for efficient loading of very large Lua projects
  • Implemented previously missing features such as reference search and go-to-definition
  • Improved function parameter hints by removing redundant information
  • Streamlined the debug launch process with a dedicated UI
  • Added a port selector during debugging that remembers the most recently used port
  • Added an output channel for easier troubleshooting

Changelog

CHANGELOG (EN)

FAQ

Q: Why doesn't attach debugging work?
A: Attach debugging tries to retrieve Lua symbols from the process to determine the Lua version for debugging calculations, etc. Therefore, the target process must export Lua symbols.

Q: Why can't Emmy New Debug connect to the target?
A: Usually because the injected require call fails, or require("emmy_core") returns true, which means the executable does not export Lua symbols.

Q: How can I exclude large files from being parsed in my project?
A: Create an emmy.config.json file in the project root with the following content:

{
    "source": [
        {
            "dir": "./",
            "exclude": [
                "csv/**.lua"
            ]
        }
    ]
}

Credits

This extension is a fork of the original EmmyLua project by @EmmyLua. It has been significantly re-architected with a new C++ language server for improved performance and additional features.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

西山居内部使用 EmmyLua 的vscode插件

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages