A VSCode extension for providing IDE-like functionality for Epic Games' BuildGraph XML files.
- Variables:
Ctrl+Clickon a variable like$(Foobar)to jump to its definition (<Property Name="Foobar"...>,<Option Name="Foobar"...>,<EnvVar Name="Foobar"...>, etc.). - Macros:
Ctrl+Clickon an<Expand Name="MyTestMacro"...>tag to jump to the corresponding<Macro Name="MyTestMacro"...>definition. - Includes:
Ctrl+Clickon an<Include Script="Foobar.xml"...>to open the included file directly.
The extension follows the <Include> dependency tree, ensuring that definitions are only searched for in relevant, included files.
- Symbol List: The Outline view shows a structured list of all elements with a
Nameattribute, such as<Agent>,<Node>,<Macro>, and<Property>tags. - Easy Navigation: Click any item in the Outline to jump directly to its definition in the file.
- Smart Icons: Each element type is given a unique icon to make finding what you're looking for even easier.
- Variables & Macros: Hover over a variable like
$(Foobar)or an<Expand Name="MyMacro">tag to see its full definition line in a convenient popup. - Includes: Hover over an
<Include Script="Foobar.xml">tag to see the name of the file it points to.
- Variables & Tags: variables like
$(Foobar)or#EditorBinariesfile tags are highlighted to distinguish them further from static strings.
These colours can be configured through the settings.json:
{
"editor.semanticTokenColorCustomizations": {
"rules": {
"buildGraphTag": "#cb7d7b",
"buildGraphVariable": "#cb7d7b"
}
}
}
- Context Menu: Right-click on any line containing a
<Node Name="...">or<Aggregate Name="...">tag to access the "BuildGraph" submenu. - Run Targets: Execute the "Run Target" or "Run Target (List Only)" command for the selected node directly from the editor.
- Automatic Discovery: The extension automatically searches parent directories to find the
RunUAT.batscript, allowing you to run commands from any XML file within your unreal project. - Integrated Terminal: All commands are built and executed in VSCode's integrated terminal.
You can install this .vsix file directly:
- Open VSCode.
- Go to the Extensions view (the sidebar icon).
- Click the
...(More Actions) menu at the top of the view. - Select "Install from VSIX..."
- Choose the
.vsixfile you just built. - VSCode will install it and prompt you to reload.
This is the first-time setup you only need to do once after cloning the repository.
- Install Dependencies: Open the project's root folder in a terminal and run:
This downloads all the project's development dependencies (like TypeScript and
npm install
vsce) into thenode_modulesfolder.
This is the standard workflow for making changes and testing them live.
- Open Project: Open the extension's project folder in VSCode.
- Start Debugging: Press F5 (or go to
Run > Start Debugging). - New Window: This will compile the TypeScript, start a "watch" task (to re-compile on save), and open a new [Extension Development Host] window.
- Test: In this new window, open your main BuildGraph project folder. Open an XML file and test your changes.
- Reload Changes: To see new code changes, simply:
- Save your
.tsfile. - Reload the [Extension Development Host] window (go to its Command Palette with
Ctrl+Shift+Pand runDeveloper: Reload Window).
- Save your
When you're happy with your changes, you can package the extension into a .vsix file.
- Open the extension's project folder in your terminal.
- Run the package script:
npm run package
- This will create a
.vsixfile in your root folder.




