Packages

Interactive code visualizations for Elixir projects — 3D software city and Ecto ERD, rendered as self-contained HTML.

Current section

Files

Jump to
ex_code_view CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2026-04-20
Initial public release.
### Added
- `mix view` Mix task that analyzes an Elixir project and generates a self-contained interactive HTML visualization.
- **City view** — 3D software city built with Three.js. Modules are buildings (height = lines of code), namespaces are districts, dependencies are arcs between buildings. Isometric camera with pan, zoom, and click-to-focus district detail view.
- **ERD view** — Entity-Relationship Diagram for Ecto schemas, grouped by Phoenix context. Cross-boundary associations highlighted. Schemas start expanded; click to collapse.
- **AST-based analysis** — modules and ERD schemas extracted via `Code.string_to_quoted/2`. No compilation of the target project required; Ecto does not need to be a dependency of ExCodeView.
- **Coupling analysis** — cross-module dependencies read from the Mix compiler manifest.
- **Pluggable views** via the `ExCodeView.View` behaviour. Third-party packages can register views with `config :ex_code_view, views: [MyView]`.
- **Pluggable schema extractors** via the `ExCodeView.SchemaExtractor` behaviour (bundled: Ecto).
- **Unified shell** — single HTML template with tab navigation between views, browser-history-aware back/forward, and persisted per-view settings.
- **CLI parameterization**`--source-dir`, `--extensions`, `--exclude`, `--output`, `--output-dir`, `--output-template`, `--open`, `--json`, `--list`, `--view`.
- **Application config** under the `:ex_code_view` key for setting defaults.
- **`usage_rules` integration** — ships main rules plus sub-rules (`views`, `schema-extractors`, `viewer-js`) and pre-built skills (`add-visualization`, `configure-ex-code-view`) for LLM-assisted use and extension.
- **Programmatic API**`ExCodeView.analyze/2` returns a `%ExCodeView.Schema.Analysis{}` struct for custom viewers or tooling.
[0.1.0]: https://github.com/ShawnMcCool/ex_code_view/releases/tag/v0.1.0