qe-language — VS Code extension for
|
| Prefix | Expands to |
|---|---|
bt / backtest |
Single-asset backtest skeleton |
sw / sweep |
Sweep with let-bound axes |
wf |
walk_forward(...) |
res |
research(...) |
signal |
signal(entry=..., exit=..., symbol=...) |
factor |
factor(\"name\", expr=...) |
axis |
axis(\"path\", ...) |
paired_axis |
Linked-axis form |
weight_axis |
Portfolio-weight linked axis (sum to 1.0) |
signalize_universe |
Universe rotation skeleton |
output / execution / yahoo / file |
Builder blocks |
Build from source
Requires Node ≥ 18 and npm. ./install.sh calls these targets
for you; the individual npm scripts are exposed for development:
cd editors/vscode
npm install
npm run build # tsc -> out/extension.js
npm run package # vsce package -> qe-language-X.Y.Z.vsix
npm run install-ext # alias for ./install.sh
npm run uninstall-ext # code --uninstall-extension jiucheng-zang.qe-language
The packaged .vsix is self-contained (no Node runtime,
no network calls). Hover docs are read from data/builtins.json
shipped inside the extension.
Scope
v1 ships highlighting + snippets + a static hover provider. There
is no language server, no completion, no diagnostics. A real
LSP that shells out to a qe_lint binary is a separate follow-up.
The grammar sources its identifier lists from the canonical
language reference: see docs/qe-language.md.
When new builtins land in the language, update three files in
lockstep:
syntaxes/qe.tmLanguage.json— add the name to theconfig-builtinorsignal-builtinregex.data/builtins.json— add akind/signature/descriptionentry.snippets/qe.code-snippets— optional, for common shapes.
Then bump package.json version, rebuild, repackage.