Avalon
Companion VS Code extension for the Avalon build engine — an IBM i-hosted build engine dedicated to building projects managed in Git and developed from VS Code.

Requirements
This extension depends on:
Both extensions must be installed and an active IBM i connection must be established before Avalon features become available.
Features
Applications view
Avalon adds a dedicated sidebar panel (activity bar icon) that displays all Avalon applications configured on your IBM i system. For each application, you can browse:
- General settings — click to edit the application's general settings (name, description, reference branch...)
- Library list — the libraries assigned to the application
- Compilation parameters — per-application overrides for compilation commands (e.g.
RPGLE/*MODULE, CLLE/*PGM), allowing you to tailor build parameters per application

Project Explorer integration
Avalon injects a node into each iProject in the IBM i Project Explorer:
- Build library — shows which workspace library is assigned to the current Git branch (or "Not built yet" if no build has been performed)
- Changeset — lists all components that have changed in the workspace, decorated with status badges:
- A (Added) — new component
- M (Modified) — changed component
- D (Deleted) — removed component
- R (Recompiled) — component that needs recompilation

Hovering over a component displays detailed informations about the component (change type, cause of recompilation, hashes, ...)

Git branch awareness
The extension monitors your current Git branch. When you switch branches, Avalon automatically resolves the corresponding build workspace so the Project Explorer always reflects the state of your active branch.
Source file commands
Available from the editor and explorer context menus (under the Avalon submenu):
| Command |
Description |
| Generate header |
Inserts an Avalon header block (%AVALON%…%END-AVALON%) with language-appropriate comment syntax. Supported languages: RPG, CL, COBOL, SQL, DDS, PNL, CMD, C/C++. |
| Edit pre-compilation script |
Creates or opens a .pre script next to the source file, executed before compilation. |
| Edit post-compilation script |
Creates or opens a .post script next to the source file, executed after compilation. |
Changeset commands
Right-click the changeset node to:
- Clear build workspace — reset the remote workspace library and changeset for the current branch
Right-click any component in the changeset to:
- Display object details — inspect the compiled object attributes
- Open local file — view the source from the local workspace
- Open build file — view the source as it exists on the IBM i
- Compare with reference — diff your local file against the application's reference branch version
- Compare with last build — diff your local file against the remote build version
Snippets
The extension provides snippets for creating Avalon build source files. Type the prefix in the corresponding file type to expand:
| Prefix |
File type |
Generates |
CRTPGM |
*.ilepgm |
ILE program creation |
CRTSRVPGM |
*.ilesrvpgm |
ILE service program creation |
CRTBNDDIR |
*.bnddir |
Binding directory creation |
CRTDTAARA |
*.dtaara |
Data area creation |
CRTMSGF |
*.msgf |
Message file creation |
CRTDTAQ |
*.dtaq |
Data queue creation |
ADDPFTRG |
*.pftrg |
Physical file trigger |
All snippets use Avalon build variables (&AV_LIB, &AV_OBJ) that the build engine resolves at build time.
Language associations
The extension registers the following file type associations:
*.pftrg → CL (physical file trigger sources)
*.alias, *.function, *.index, *.procedure, *.sequence, *.table, *.trigger, *.view → SQL
Getting started
- Install the Code for IBM i and IBM i Project Explorer extensions.
- Install the Avalon extension.
- Clone your IBM i application's Git repository (migrated by Avalon)
- Open the repository in VS Code
- Connect to your IBM i system through Code for IBM i.
- If prompted, select the Avalon product library via the Change product library command (available from the command palette, the Applications view title bar or the Project Explorer's Avalon node).
- Once connectged, Avalon will automatically detect the associated application information and display the build state.