# Changelog

## feat/formatter

### Added

- Added `Parser` as a reusable parsing handle around `ParseOptions`.
- Added parser diagnostics on `Text` with `Span`, `ParseDiagnostic`,
  `DiagnosticSeverity`, and `ParseDiagnosticKind`.
- Added `ContextualResolution` and kept `ContextualContext` as a deprecated
  compatibility alias.
- Added `Reference::format()` and `Reference::format_with(...)`.
- Added `Formatter`, `FormatOptions`, `ListFormatOptions`, and formatting style
  enums for single-reference and collection formatting.
- Added `PARSER_API.md` documenting the parser/formatter redesign and future
  diagnostic work.

### Changed

- Bumped crate version from `0.1.0` to `0.1.1`.
- Updated Criterion from `0.5` to `0.8`.
- Ran `cargo fmt`, which refreshed import ordering and line wrapping in a few
  existing files.

### Notes

- `Text::parse` now computes diagnostics. The legacy reference-only helpers keep
  diagnostic work off the hot path.
- Invalid chapter, invalid verse, invalid range, and ambiguous bare-reference
  diagnostics are planned, but require parser extraction changes to retain
  rejected candidates and spans.
