Development Environment

March 30, 2026 ยท View on GitHub

Important


This readme is for if you want to generate the LuaLS annotations yourself and/or contribute with development.

This project has only been tested with WSL (Ubuntu 24.04) and developed with the remote WSL extension. Setting up LuaRocks on Windows is strongly discouraged but it may work with a lot of headaches.

wsl --install

Lua

# wherever you want to clone the repo
cd ~
git clone https://github.com/Ketho/vscode-wow-api
cd vscode-wow-api

./setup/lua.sh

Usage

Generates the LuaLS annotations. This is also available as the Lua run VS Code task.

# wherever the repo is
cd ~/vscode-wow-api

source .lua/bin/activate
lua luasrc/init.lua

VS Code Extension

The setup/npm.sh script installs the npm packages for TypeScript definitions and ESLint.

./setup/npm.sh

Debugging

To debug the extension, pressing F5 (which runs the default build task) and then opening a folder and looking at a Lua file should activate the extension.

Note


The extension will only fully load and setup the LuaLS configuration, if there is a valid .TOC file in the opened folder or if the "Activate WoW API extension" command is used.

Warning

You will probably get a notification first asking to install the Lua Language Server as a remote extension on WSL.

Update FrameXML references

Annotations/FrameXML is a gitmodule for the NumyAddon FramexmlAnnotations Repository. Update with: git submodule update --remote

Packaging

If you want to package the extension locally into a .vsix file.

npx vsce package

Note


The package.json already includes vsce as a dev dependency so you won't need to install it first.