Skip to main content

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:

  1. Install the debugger extension from the VS Marketplace
  2. Configure it to use evo as the Lua runtime (see instructions here; simply replace the executable name)
  3. 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.

Local Lua Debugger: Known issues

There are currently two known (severe) problems that you may face while debugging your application with this tool:

  1. Debugging can become extremely slow when you set multiple (conditional) breakpoints
  2. 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!