uml-viewer
Clojure + Quil · live, clickable UML of a namespace treeThe direct ancestor, and the source of the most important disagreement. uml-viewer starts at the project root and drills down: double-click a package to see what's inside it. codezoom starts anywhere and moves across: the Focus is any type, and drilling re-centres on a neighbour. That one change is why the core terms are Focus, Drill, Back and Jump, and why "Back" means returning along your Trail, not climbing to a parent folder.
Carried over
- The promise of a UML you click through, all the way down to the source line.
- UML arrowheads for inheritance and interfaces, plain arrows for dependencies, cut down to four edge kinds.
- Outside libraries drawn as one rounded node each, set apart from your own boxes.
- Arrows pointing down toward what gets used, the same reading direction uml-viewer gives "good" dependencies.
- A split between what a person decides (uml-viewer's policy file, codezoom's
codezoom.config.json) and what the tool regenerates and nobody edits (its IR, codezoom's index). - Reading code into language-neutral facts first and building the graph from those, which leaves room for a second reader later.
Left behind, for now
- The containment drill: zooming into nested namespaces.
- Colouring boxes by test quality (CRAP and mutation scores). codezoom uses box size for something else: Weight.
- Architecture "levels" with red arrows for dependency-rule violations, and what-if regroupings.
- The companion agent that edits code from the diagram.
- Forking it at all: it runs on the JVM and has no C# reader (ADR 0001).