A powerful Lua IDE and debugger extension for Visual Studio Code with intelligent code completion and advanced debugging.
EmmyLua is a Visual Studio Code extension that provides comprehensive IDE and debugging capabilities for the Lua programming language. It offers intelligent code completion, real-time error diagnostics, and advanced debugging features like remote and attach debugging. It solves the problem of lacking professional development tooling for Lua within the popular VSCode editor.
Lua developers using Visual Studio Code who need robust tooling for writing, analyzing, and debugging Lua scripts, including those working on game mods, embedded scripting, or application automation.
Developers choose EmmyLua for its deep integration with VSCode, its powerful and performant Rust-based language server, and its comprehensive feature set that includes advanced debugging—features often missing from basic Lua extensions.
Lua IDE/Debugger Plugin for VSCode
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports attach, launch, and remote debugging with breakpoints, making it suitable for complex Lua applications, as detailed in the debugging section.
Uses a Rust-based language server for better performance and memory safety, as noted in the FAQ about the rewrite from .NET/Java.
Works seamlessly on Windows, macOS, and Linux, ensuring consistent development across operating systems, per the features list.
Allows customization via .emmyrc.json to disable warnings like undefined variables, reducing noise for project-specific needs, as shown in the FAQ.
Remote debugging requires manual insertion of debugger code and configuration steps, which can be cumbersome and error-prone, as outlined in the debugging guide.
Attach debugging only works if the target process exports Lua symbols, a limitation admitted in the FAQ that restricts use in some environments.
Requires managing .emmyrc.json files for each project to tune diagnostics, adding setup complexity compared to simpler extensions.