Integrations and Tooling
Discover additional tools that can ease your development workflow
Code Completion
If you're using Visual Studio Code, any plugin that supports Lua 5.1 should also work with Evo. Recommendation: Lua Language Server
Note that LLS will currently only show the Lua/LuaJIT APIs and not the additional ones referenced here. More info on this soon™.
Live Debugging
You can debug programs run by Evo in Visual Studio Code by installing Tom Blind's Local Lua Debugger. Here's how:
- Install the debugger extension from the VS Marketplace
- Configure it to use
evo
as the Lua runtime (see instructions here; simply replace the executable name) - You should now be able to run your app with Evo, set breakpoints, and inspect variables as needed (
Start Debugging
etc.)
Please note that there several are other debugger extensions for Lua, which may or may not work with Evo.
There are currently two known (severe) problems that you may face while debugging your application with this tool:
- Debugging can become extremely slow when you set multiple (conditional) breakpoints
- When inspecting a table that has been assigned a metatable without a
__len
metamethod, the debugger will crash
None of these are limited to Evo, but planned improvements to the debugger may help resolve them in the future.
One important caveat is that you can't currently inspect cdata
values, nor gain insight into the C++ layer of the runtime.
Static Analysis
You can use luacheck or selene to analyse your codebase and find potential issues. Both can be used with Evo out of the box.
They, too, will fail to recognize the additional APIs that Evo provides. For now, you can use this luacheck configuration as a workaround.
Code Formatting
All formatting tools that support LuaJIT and Lua 5.1 should work. StyLua is a great one and it has a Visual Studio Code plugin, too.
GitHub Actions
Consider adding automated tests via GitHub Actions to your repository. The setup-evo-lua-environment action will take care of setting up the Lua runtime for you. This action is maintained as part of the project, with the goal of providing a better developer experience.
There are also third-party actions to set up luacheck and selene, though it's unclear whether the latter is still maintained.
Other Tools
If you're aware of useful tools that are missing here or you would like to create some for Evo, please open an issue and get in touch!