PRISM
MRO & Inheritance Visualizer

Know exactly which version of a method actually runs.
Move your cursor into any class and PRISM instantly shows where every method lives in the inheritance chain — and whether the version you're editing is the one that actually executes. Every cursor move, within 200ms.
Python, TypeScript, JavaScript, Java, Kotlin, C++, Go, C#, Ruby, Scala — all supported, all free.
You edit DeepSpeedEstimator.setup_dataloader(). You add logging. Nothing happens — because DLEstimatorBase.setup_dataloader() is what actually runs. Your version is shadowed and never executes. PRISM catches this the moment your cursor lands on the method.

See the changelog for what's new in each release.
Who Is This For
- Developers ramping up on a new codebase — get a full picture of any class hierarchy without digging through layers of inheritance by hand
- Teams maintaining large frameworks — instantly see which methods are overridden or shadowed across your entire project
- Open-source contributors — understand unfamiliar inheritance structures in seconds, not hours
- Enterprise teams — onboard faster, ship with confidence that you're editing the code that actually runs
- Polyglot teams — same experience across Python, Java, TypeScript, JavaScript, C++, C#, Go, Kotlin, Ruby, and Scala
Supported Languages
| Language |
Inheritance Model |
Parser |
| Python |
Class inheritance, multiple inheritance, MRO |
Python AST |
| Java |
Class extends, implements |
Tree-sitter |
| TypeScript |
Class extends |
Tree-sitter |
| JavaScript |
Class extends |
Tree-sitter |
| C++ |
Class inheritance, multiple inheritance |
Tree-sitter |
| Go |
Struct embedding, method receivers |
Tree-sitter |
| Kotlin |
Class inheritance, open/override |
Tree-sitter |
| C# |
Class inheritance, interfaces |
Tree-sitter |
| Ruby |
Single inheritance, mixins |
Tree-sitter |
| Scala |
Class/trait inheritance, extends/with |
Tree-sitter |
Features
Live MRO Panel
Move your cursor into any class and PRISM instantly shows the full Method Resolution Order — a vertical stack of class cards with color-coded method pills. Every cursor move triggers a fresh analysis. No manual refresh needed.
Four Method States
| State |
Color |
What It Means |
| Owns |
Green |
This class defines the method. No parent defines it. It runs. |
| Overrides |
Amber |
This class redefines a parent's method. This version wins. |
| Overridden |
Purple |
This version runs here, but a child class has its own version. |
| Shadowed |
Red |
A parent class's version runs instead — this one never executes. |
Four Analysis Tabs
Resolution Tab — The main view. Summary bar tells you in one sentence what's happening. MRO chain shows every class in resolution order with clickable navigation. Method pills are color-coded by status.
Scan Tab — Workspace-wide inheritance analysis. Scans every class in your project and surfaces overridden methods, unique methods, and MRO conflicts. Toggle between scan modes with paginated results.

Search Tab — Find classes and methods across your entire workspace. Filter by name, navigate results, and jump to definitions instantly.

Graph Tab — Interactive SVG mindmap of the class hierarchy. Pan, zoom, fit-to-view, focus on cursor class, and toggle dynamic camera follow. Radial view shows MRO classes with method dots.


Editor Integration
- CodeLens — Inline badges appear directly in your editor:
overridden downstream warns that a child class replaces this method, shadowed by base flags methods that never run. Click any badge for a quick-pick menu that jumps you straight to the relevant class.
- Hover Cards — Hover over any class or method name for a rich detail popup showing its status, where it's defined, and what overrides or shadows it.
- Inline Decorations — Shadowed methods are visually dimmed. Overridden methods get a purple underline. You can spot issues without even opening the panel.
- Diagnostics — Shadowed-method warnings appear in the Problems panel, integrated with your existing workflow.
- Jump to Definition — Click any class name in the MRO chain and your editor jumps to that file and line. Navigate a 10-level inheritance chain in seconds.

Workspace-Wide Inheritance Scan
Run PRISM: Scan Workspace for Overridden Methods from the command palette to scan your entire project. PRISM indexes every class in every supported language, computes every MRO, and reports overridden methods, unique code, and MRO conflicts — giving you a complete picture of your inheritance hierarchy.
- Sub-200ms updates from cursor move to visible change
- AST caching per file — only reparses when the file actually changes on disk
- Persistent backend — a long-lived subprocess stays warm between requests. Zero cold starts.
- Workspace pre-indexing — on activation, PRISM indexes your entire workspace in the background so class resolution is instant from the first cursor move
- File watcher — when you save, create, or delete files, the index updates automatically
- Incremental re-indexing — only re-indexes changed files, not the entire workspace
What's New in v0.4.0
- Callers tab — "Who calls this?" reverse call graph with O(1) lookups, call classification, and caller count badges
- Product analytics — privacy-respecting usage analytics via PostHog (no PII, respects VS Code telemetry settings)
- Cursor deduplication — skips redundant async requests when cursor stays on same class+method
- Output channel overhaul — structured
[type] tag logging with visual alignment and timing
- New branding — updated logo, icons, and PRISM identity
v0.3.0
- Search Tab — find classes and methods across your workspace with instant filtering
- Scan Tab — toggle between overridden, unique, and MRO conflict scans with paginated results
- Graph Tab — interactive mindmap with pan/zoom/fit/focus, plus radial MRO view
- Welcome state — branded landing page when no class is selected
- Header — open, refresh, and settings buttons in the panel toolbar
- Accessibility — larger hit targets, shape indicators for color-blind users, ARIA labels
- Improved resolver — import-aware + proximity-based class resolution for duplicate class names
- Incremental re-indexing — file-save re-indexing instead of full workspace rebuilds
- Walkthrough tour — guided quick tour for new users
- Configurable settings — default tab, debounce timing, scan page size, and more
Tested On
PRISM has been tested on real-world, production-scale repositories across all supported languages:
Python
| Repository |
Scale |
What We Tested |
| PyTorch Lightning |
1,200+ classes |
Deep trainer inheritance chains, complex multiple inheritance MRO. Full workspace indexes in seconds. |
Java
| Repository |
Scale |
What We Tested |
| Spring Framework |
Enterprise-scale |
Deep framework hierarchies, abstract base classes, interface implementations |
| Elasticsearch |
100K+ files |
Massive codebase stress test, FilterReader subclasses, query builder chains |
TypeScript
| Repository |
Scale |
What We Tested |
| VS Code |
15K+ files |
Editor component hierarchies, view item inheritance, render overrides |
| TypeORM |
ORM framework |
QueryRunner chains (3-level inheritance), driver-specific overrides |
JavaScript
| Repository |
Scale |
What We Tested |
| Three.js |
3D engine |
Render target hierarchies, material inheritance, geometry chains |
| Babel |
Compiler toolchain |
Plugin hierarchies, transformer class chains |
C++
| Repository |
Scale |
What We Tested |
| OpenCV |
Computer vision |
ParallelLoopBody subclasses, virtual method overrides |
| LLVM |
Compiler infrastructure |
ReferenceBase hierarchies, deep template chains |
Go
| Repository |
Scale |
What We Tested |
| Kubernetes |
Container orchestration |
Struct embedding, method receiver resolution |
Kotlin
Combined Multi-Repo Stress Test
All 11 repositories opened in a single workspace — 136,000+ classes indexed across 7 languages. PRISM resolved every cursor position without errors.
Requirements
- VS Code 1.85+ or Cursor
- Python 3.10+ installed and available as
python3 on your PATH (required for the backend analysis engine)
No configuration needed. No API keys. No setup wizards. Install and go.
Getting Started
- Install PRISM from the marketplace (or install the
.vsix directly)
- A guided Quick Tour walks you through the key features on first install
- Open any project with class inheritance in a supported language
- The PRISM sidebar appears automatically in the Activity Bar
- Move your cursor into a class — the panel updates in real time
- Use PRISM: Show Panel (
Cmd+Shift+P) to open the floating panel for more space
Want to retake the tour? Open the command palette (Cmd+Shift+P) and run PRISM: Open Quick Tour.
Commands
| Command |
Shortcut |
Description |
PRISM: Show Panel |
Shift+Alt+P |
Open the floating PRISM panel for a wider view |
PRISM: Scan Workspace for Overridden Methods |
Shift+Alt+S |
Scan every class in your workspace for overridden methods |
PRISM: Focus Sidebar |
Shift+Alt+M |
Bring focus to the PRISM sidebar |
PRISM: Open Quick Tour |
|
Reopen the guided walkthrough anytime |
Settings
| Setting |
Default |
Description |
prism.ui.defaultTab |
resolution |
Which tab to show when the panel opens |
prism.ui.showWelcomeOnStartup |
true |
Show branded welcome state when no class is selected |
prism.ui.scanPageSize |
25 |
Number of scan results before "Load more" |
prism.analysis.debounceMs |
80 |
Milliseconds to wait after cursor stops before analyzing |
prism.analysis.maxDepth |
10 |
Maximum inheritance depth to resolve |
prism.output.autoShow |
false |
Auto-show the output channel when a supported file opens |
prism.output.showTimings |
true |
Log per-request analysis timings in the output channel |
prism.telemetry.enabled |
true |
Enable anonymous usage analytics (respects VS Code telemetry) |
Status Bar
PRISM — cursor is inside a class, analysis active
PRISM: outside class — cursor is not inside a class definition
PRISM: error — backend issue (check Output panel)
Troubleshooting
If something looks wrong, open the Output panel (View → Output → select "PRISM") to see analysis timing and any backend errors. Analysis should show under 200ms per request but could go slightly higher for indexing larger codebases.
"externally-managed-environment" error
If you see externally-managed-environment in the PRISM output channel, your Python installation (commonly Homebrew on macOS) restricts pip installs. PRISM will retry automatically with the --break-system-packages flag, but if that fails you can install manually:
python3 -m pip install --user --break-system-packages tree-sitter tree-sitter-java tree-sitter-typescript tree-sitter-javascript tree-sitter-cpp tree-sitter-go
Or use a virtual environment:
python3 -m venv ~/.prism-venv
~/.prism-venv/bin/pip install tree-sitter tree-sitter-java tree-sitter-typescript tree-sitter-javascript tree-sitter-cpp tree-sitter-go
Multi-language support unavailable
PRISM's Python MRO analysis works out of the box. Multi-language support (Java, TypeScript, C++, Go, etc.) requires tree-sitter pip packages. PRISM auto-installs these on activation — if installation fails, only Python analysis is affected. Check the Output panel for details.
Panel not updating
Ensure the Output panel shows analysis: Xms lines when you move your cursor. If not, the backend may not be running — try reloading the window (Cmd+Shift+P → "Reload Window").
What's Next
Coming soon:
- CI/pre-commit hooks
- Git blame integration on overridden methods
- PR diff mode
- Claude Code integration that automatically catches inheritance bugs during AI-assisted development
Enjoying PRISM? Leave a rating — it helps other developers discover PRISM and keeps development going.
Found a bug, have feedback, or want to request a feature? Reach out at hello@prism-tools.dev or support@prism-tools.dev, or leave a review directly on the marketplace.
Visit prism-tools.dev for documentation, blog posts, and the full feature catalog.
License
All rights reserved. This software may not be copied, modified, or redistributed without explicit permission.