Abstracts the physical .xc file into a developer-friendly experience.
The format is v2: a single monolithic # [CODE: MONOLITH] block, with
explanation blocks bound to it by 1-indexed line ranges (lines: 5-8).
Features
- Split view custom editor for
*.xc:- Left: the monolithic code with syntax highlighting (highlight.js)
and line numbers, editable as a normal file. On edit the code block is
rewritten and every explanation's
lines:range is automatically remapped (via an LCS diff) so the prose keeps pointing at the same logical lines. - Right: the prose layer, rendered with tables, checklists and LaTeX
math (
$inline$/$$display$$→ MathML via Temml), in one of two modes. - Resizable divider + swap sides (⇄), persisted per file.
- Left: the monolithic code with syntax highlighting (highlight.js)
and line numbers, editable as a normal file. On edit the code block is
rewritten and every explanation's
- Two display modes, toggled in the top bar:
- Сетка / Grid (Excel-style, default). The right panel is ruled into rows aligned 1:1 with code lines. An explanation renders from its start line and flows down until the next block starts; scroll is monolithic (one shared line index — desync is impossible). Blocks collapse to a single row (revealing the block underneath), and multiple blocks on the same start line become tabs.
- Контекст / Sticky context. The right panel shows cards only for the block(s) whose range covers the focused code line.
- Authoring. Edit a block (id, line range, Markdown) in a floating editor; Describe selection attaches prose to selected code lines; delete a block with undo (Ctrl/Cmd+Z). Click code → highlight the covering block; hover a block → highlight its code lines.
- Isolated git diff:
XC: Diff Code Layer/XC: Diff Explanation Layeropen VS Code's native diff over a single layer (HEAD ↔ working).
Develop / run
npm install
npm run compile # esbuild bundle -> out/extension.js
npm run typecheck # tsc --noEmit
npm run test:parser # recognizer parity tests (no VS Code needed)
Then open this folder in VS Code and press F5 to launch an Extension
Development Host. Open any .xc file (e.g. ../core/examples/auth.xc).
Architecture notes
The extension shares the line-oriented recognizer with the CLI
(src/xcParser.ts mirrors core/xc/parser.py) so both agree exactly on where
code lives. Markdown is rendered host-side with markdown-it; the webview only
receives sanitized HTML and the flattened code, preserving layer isolation.