Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>ARXML WorkbenchNew to Visual Studio Code? Get it now.
ARXML Workbench

ARXML Workbench

Pritam Jagtap

| (0) | Free
ARXML/AUTOSAR tree, cross-file navigation, side-by-side compare, and review-ready HTML/Excel diff reports
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ARXML Workbench

A VS Code extension for navigating, inspecting, and comparing AUTOSAR ARXML / CDD files. Streams large documents into a tree, follows cross-file references, exports review-ready HTML/Excel diff reports, and opens a side workbench panel with a recursive AUTOSAR-aware inspector.

Previously published as ARXML Tree Viewer; renamed to ARXML Workbench in 0.4.1 to reflect the broader feature set.

Installation

  1. Install from the VS Code Marketplace, or sideload the latest arxml-workbench-*.vsix from pre-release/.
  2. Open any .arxml / .cdd file. The ARXML Tree View appears in the Activity Bar.
  3. For local development: npm install, then npm run esbuild.

Features

  • Tree View — SAX-streamed parser handles large files; selecting a node reveals the matching range in the editor.
  • Cross-File Hover Navigation — hovering any *REF DEST="..." shows a clickable link to the matching AR-PATH, resolved across all open ARXML files (cross-file hits show the source filename).
  • Persistent Bookmarks — workspace-scoped, survive reloads.
  • Focus Sync — caret position in the editor focuses the closest tree node.
  • Side-by-Side Compare — right-click two .arxml/.cdd files → ARTree: Compare ARXMLs. Color-coded added/removed/modified, identity-aware child pairing (by SHORT-NAME then tag+position), ignores UUID / whitespace on demand, prev/next jump, double-click any row to reveal in source.
  • Quality Diff Reports (HTML + Excel) — export from the compare view or directly from the Explorer. Includes weighted risk score, automatic findings (reference retargets, numeric drift, UUID-only churn, mass add/remove), per-module Mod sheets with frozen panes + autofilter + data bars, embedded provenance (file SHA-256, reviewer/ticket/notes, tool version). Self-contained HTML is theme-aware and print-friendly.
  • ARXML Workbench Panel (preview) — ARTree: Open Workbench (Beside) opens a webview beside the source ARXML that follows the integrated tree selection.
    • Overview — SHORT-NAME, AR-PATH, UUID, DESC / LONG-NAME / CATEGORY / INTRODUCTION, AUTOSAR R20-11 schema description for the selected tag, and root attributes.
    • Properties — recursive grouped inspector. Scalar fields render as a flat table; sub-containers under SUB-CONTAINERS / ELEMENTS / AR-PACKAGES are grouped by DEFINITION-REF leaf with catalog-aware columns (e.g. DcmDspDid rows surface DcmDspDidIdentifier). Every row has an inline + expander that reveals that container's own fields and nested sub-groups recursively — mirroring the full Raw XML depth as tables.
    • References — VALUE-REF entries with their DEST.
    • Raw XML — recursive card inspector with the verbatim XML in a disclosure block; loaded lazily on tab activation.
    • Keybinding Ctrl+Alt+W (Cmd+Alt+W on macOS) toggles focus between editor and workbench. Schema descriptions come from the bundled xsd/AUTOSAR_00049.xsd (AUTOSAR R20-11, per GM SDV-8001).

Demo

Usage

Filter Controls

Filtering is integrated into the ARXML Explorer view. Three fields (Name, AR-PATH, Element), each with right-click mode selection (Contains / Regex / Glob). Recent filters and file-filter toggle are available from the header.

Shortcuts: Ctrl+Shift+F toggle controls · Ctrl+F toggle File Filter · Esc clear filter (when the ARXML Explorer is focused).

Custom Views

Select from View Controls → Custom Views, edit via Edit Custom Views, and import/export sets via the corresponding ARTree: …custom views commands (includes versioning and conflict resolution). Storage scope is controlled by arxmlTree.customViewStorageScope. Schema and examples: .claude/skills/arxml-tree-domain/references/custom-views.md.

Bookmarks

Right-click a tree node → ARTree: Add bookmark. Manage entries from the Bookmarks tree.

Hover & Go-To References

Hover any REF DEST="..." for a trusted link to the matching AR-PATH (across open files); cross-file hits show a 📄 icon with the target filename. Clicking runs ARTree: Goto node, opening the file if needed.

Compare & Diff Reports

  • Launch a compare via Explorer multi-select or the Select for Compare → Compare with Selected two-step.
  • Toolbar offers diff filters (only diffs / all), ignore UUID, ignore whitespace, expand/collapse, prev/next, and counts.
  • Export via the toolbar ⤓ HTML / ⤓ Excel buttons, or headlessly via ARTree: Export Diff Report (HTML / Excel) in the Explorer context menu.
  • Report settings live under arxmlTree.diffReport.* (defaultFormat, includeUnchangedInExcel, maxModuleSheets).

Commands & Settings

All commands are discoverable from the Command Palette under ARTree:. The canonical command and setting list lives in package.json under contributes.commands and contributes.configuration.

Notable groups:

  • Tree: Refresh, Reveal in file, Focus node, Goto node.
  • Filtering: Toggle Filter Controls, Toggle File Filter, Clear Filter.
  • Bookmarks: Add / Remove bookmark.
  • Custom Views: Edit / Select / Apply / Toggle / Add / Remove / Import / Export.
  • Compare: Compare ARXMLs, Select for Compare, Compare with Selected, Export Diff Report.
  • Workbench: Open Workbench (Beside), Toggle Workbench Focus.

Performance & Large Files

  • Files with 1000+ nodes auto-switch to optimized rendering with lazy/chunked processing and intelligent caching.
  • Filter application is debounced (arxmlTree.debounceDelay, default 200ms) and adapts to file size when arxmlTree.adaptiveDebounce is enabled.
  • arxmlTree.refreshMode: onChange (default, most responsive), onSave, or manual (lowest CPU; cross-file refs may show stale data until refresh).
  • arxmlTree.workspaceSearchLargeFileThresholdMB (default 50, range 10–500) switches workspace search to conservative filesystem-fallback mode for huge files.
  • Workbench selection updates use a lightweight payload + lazy Raw XML, an LRU cache keyed by URI/AR-path/document version, and a monotonic selection sequence that drops stale messages from rapid clicks.

Limitations & Tips

  • Cross-file navigation needs the target file open (or reachable via workspace search). Definition files under /MICROSAR/Rte/... may live in separate ARXMLs.
  • For extremely large files, VS Code may disable document sync; workspace search uses a filesystem fallback so splitting is rarely needed.
  • Parsing requires valid XML; syntax errors are surfaced in the notification area.
  • Bookmark ranges are not auto-updated when you insert lines above them — use the AR-PATH tooltip link to re-sync.

Contributing & Testing

  • npm run compile — TypeScript (strict, noImplicitReturns, noFallthroughCasesInSwitch, noUnusedParameters). Prefix unused params with _.
  • npm run lint — ESLint flat config (eslint.config.js, ESLint 9+).
  • npm test — Mocha suite covering parser, search, filters, stores, WebView messaging, custom views, and the workbench service.
  • npm run esbuild — dev build. npm run vscode:prepublish — production build.
  • Package via npx @vscode/vsce package.

Contributions welcome — document new commands or settings in this README and ensure tests pass.

Credits

Forked from robinbreast/vscode-arxml-tree — the original ARXML Tree Viewer by robinbreast (Kihoa Nam), whose tree, hover, and bookmark foundations made this workbench possible. Thank you. See LICENSE for the dual MIT copyright.

License

MIT — © 2024 robinbreast, © 2026 Pritam Jagtap.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft