# CodeStory v0.1.0 - Table of Contents

> A code comprehension tool that traces user-defined function calls as a nested call tree with named arguments and return values.

## Pages

- [CodeStory](readme.md)
- [Changelog](changelog.md)
- [License](license.md)

## Modules

- Public API
  - [CodeStory](CodeStory.md): A code comprehension tool for surveying unfamiliar Elixir code.
  - [CodeStory.Encoder](CodeStory.Encoder.md): Converts a call tree into a JSON-ready plain-data structure.
  - [CodeStory.Fold](CodeStory.Fold.md): Collapses consecutive sibling runs of the same `{module, function, arity}` in a
call tree.

- Internals
  - [CodeStory.Args](CodeStory.Args.md): Extracts function parameter names from BEAM debug info chunks.

  - [CodeStory.Collector](CodeStory.Collector.md): GenServer that receives trace events and builds a nested call tree.
  - [CodeStory.Formatter](CodeStory.Formatter.md): Renders the call tree as a human-readable, color-coded string.

  - [CodeStory.Modules](CodeStory.Modules.md): Auto-detects user-defined modules from the host project's mix.exs app name.

  - [CodeStory.Tracer](CodeStory.Tracer.md): Configures Erlang tracing to feed events into the Collector.

