XRack for VS CodeThe extension adds definition navigation, semantic highlighting, context-sensitive completions, diagnostics, a component outline, and live previews for Use Go to Definition (F12 or Ctrl/Cmd-click) on properties, component IDs, callbacks, parameters, repeat bindings, record fields, and imported types. Hover for symbol information, or place the cursor on a symbol to highlight its occurrences in the current file. Semantic highlighting distinguishes declared components, records, built-in types, enum variants, properties, callbacks, and local bindings. The TextMate grammar provides highlighting while the server starts. Use Find All References or Rename Symbol (F2) to work across the open workspace's The server reports progress while indexing workspace files in the background. Unsaved edits take precedence over disk contents. Rapid changes are grouped before diagnostics and indexing run. File watcher events update the affected entries, and closing a document restores its saved contents. Reference and rename requests wait for pending index updates and can be cancelled while waiting. The workspace index is cached in VS Code's extension storage. On restart XRack checks saved file contents and import paths before reusing references. Changed files and affected importers are rebuilt. Unsaved buffers stay in memory. Definition and rename use the compiler's resolved declarations where available, including inherited members. The editor index continues to provide navigation while a file is incomplete. Use Go to Symbol in Workspace to find components and records. In an element or type position, completion can offer an exported declaration from another file and insert its import when you accept it. Callback calls show parameter names and types as you type, including the active argument in nested calls. Ctrl/Cmd-click an import path to open its file. When a diagnostic reports a missing component, use Quick Fix to import an exported component with that name. Use Format Document to format a
Type With the Install the VSIX for your platform with Extensions → Install from VSIX… and open an Live previewOpen a saved For supported components, the bundled preview host loads optimized XR MLIR into the XRack interpreter and keeps the FemtoVG/wgpu renderer alive across edits. Click a text input to type or paste into it, and click a slider track to change its value. Use the wheel to scroll a viewport or click its scrollbar track. Supported transitions and animated GIFs play in the panel. PNG, SVG, sprite atlases, and nine-slice images use the same renderer as compiled components. Source edits create a fresh component instance, and a failed edit leaves the previous frame available. This path requires a working graphics adapter. Components that use operations the interpreter does not yet support use the generated-code preview, which requires Cargo and a compatible Rust toolchain. In a source checkout, build the preview host with Drag the canvas background to move the preview. Turn on Pan or hold Alt to drag directly on the component. Use −, +, or Alt + wheel to zoom, the percentage button to return to actual size, and Fit to keep the component centered and within the panel. Trackpad pinch also zooms the view in Pan mode. These controls change the view of the rendered component while preserving its layout and state. Window presentation commands update the preview component's window state inside the panel. If the component calls DevelopmentFrom the XRack repository root, build the server and install the extension dependencies.
Press F5 in that VS Code window to open an Extension Development Host at the XRack repository root. Open The extension first uses its bundled server if available. In development, it looks for the Bazel build under the workspace's Semantic diagnostics follow direct and transitive imports. Open buffers take precedence over disk, and changing or closing a dependency refreshes diagnostics for the files that import it. VS Code also reports changes to
Packaging and Marketplace releasesGitHub Actions builds and smoke-tests all five VSIX files on pushes to To build a native VSIX locally, run the following from the repository root with Python 3.11+ and Node.js 22+. Set
Configure Trusted Publishing
The publish job uses GitHub OIDC via Publish a versionSet the extension version in
Release XRack checks the tag and downloads the verified artifacts from the successful native matrix on that exact commit. If an upload fails after some targets have been published, rerun the failed jobs to finish the release. |