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
- The setup/lua.sh script installs Lua 5.4 and LuaRocks via hererocks which is self-contained.
- The module dependencies are in the rockspec.
# 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.