Codescape is a VS Code extension that parses Java code and renders it as an isometric city.
- Buildings represent classes/interfaces.
- Height is based on methods + fields.
- The view updates from file watcher events via partial-state messages.
Active prototype with working parser, watcher, relationship graph, and canvas renderer.
| Area | Status | Notes |
|---|---|---|
| Java parsing (Tree-sitter) | Implemented | Classes/interfaces, methods, fields, constructors |
| Relationship graph | Implemented | Extends/implements/field/ctor dependencies |
| Incremental updates | Implemented | Watcher emits PARTIAL_STATE |
| Explorer webview | Implemented | codescape.Cityview |
| Panel webview | Implemented | Open via codescape.createPanel |
Auto-layout abstraction (src/layout/placer.ts) |
Partial | Exists/tests pass, not wired into live renderer |
Message contract typing (src/types/messages.ts) |
Partial | Does not fully match runtime payloads |
| Pan/rotation controls | Not implemented | Zoom-only camera controls |
- Install dependencies:
npm install- Compile:
npm run compile- Launch extension host (
F5in VS Code). - In the extension host window:
- Open the explorer view
Codescape City, or - Run command
Create Panel(codescape.createPanel).
- Open the explorer view
- Watch compile:
npm run watch- Lint:
npm run lint- Tests:
npm testTest notes:
npm testruns compile + lint + VS Code extension tests.- In offline/restricted environments,
vscode-testmay be flaky depending on local VS Code test host availability.
Contributed commands:
codescape.createPanel(Create Panel)codescape.scan(Codescape Scan)
Runtime-registered internal commands:
codescape.dumpParseStorecodescape.exportParseStore
- Keep runtime message contracts synchronized between extension/watcher/frontend/types.
- Prefer small, test-backed PRs (parser, relations, watcher, and layout have existing test suites).
- Update Usage Guide and Architecture Reference when behavior changes.
GNU GPL-3.0. See LICENSE.