The VS Code extension is a thin client over the Aedifex CLI.
Main files:
tools/vscode-extension/package.jsontools/vscode-extension/extension.js
Local plugin surface:
- workspace plugin manifests under
.aedifex/plugins/*.json
- activates when a workspace contains
Aedifex.hx - shows a target status bar item
- shows a profile status bar item
- shows a
Cleanstatus bar item - provides
Aedifex: Build - provides
Aedifex: Run - provides
Aedifex: Debug - provides one
Aedifexlaunch/debug identity - uses
launch-plan -jsonto drive launch/debug resolution - prefers workspace plugin target manifests when present so plugins can provide custom picker entries such as
html5orwindows
For roots with no runnable target, the extension still activates, but it does not invent a fake app flow.
The extension depends on CLI commands such as:
aedifex explain . -jsonaedifex targets . -jsonaedifex profiles -jsonaedifex build ...aedifex launch-plan ... -json
The extension resolves the CLI in this order:
- configured
aedifex.cliPath - local
neko run.nwhen the workspace is the Aedifex tool checkout - installed
aedifexcommand haxelib run aedifex
Debug flow:
- read the current target and profile
- build first
- read
launch-plan -json - convert the launch plan into a VS Code launch/debug action
Native launchers use:
cppvsdbgon Windowscppdbgon non-Windows native targets
Terminal-style launchers stay in VS Code's integrated terminal flow when appropriate.
aedifex.cliPathaedifex.pluginsPathaedifex.theme
The VS Code extension can be extended by local Aedifex plugins without publishing a separate VS Code extension.
If a workspace contains .aedifex/plugins/*.json, the extension reads any targets declared there and uses them for the target picker, build/run/debug flows, and generated .vscode/launch.json and .vscode/tasks.json.
Minimal example:
{
"name": "lime",
"targets": [
{
"name": "html5",
"target": "js",
"platform": "html5",
"backend": "lime"
},
{
"name": "windows",
"target": "cpp",
"platform": "windows",
"backend": "lime"
}
]
}Supported target fields:
nameorlabel: picker label shown in VS Codetarget: underlying Aedifex target token such asjsorcppplatform: optional platform qualifier such ashtml5,windows, ornodejsarchitecture: optional architecture qualifierbackend: optional description labelbuildSupported,runSupported,hidden,reason: optional UI metadata
Open:
tools/vscode-extension
Then launch the Extension Development Host from:
tools/vscode-extension/.vscode/launch.json
If you are developing Aedifex itself, register the local repo with haxelib dev aedifex ... and let the extension resolve the local runner path automatically.