$ account dart-lang
source_gen is a Dart library that provides a framework for writing source code generators that integrate with the `package:build` build system. It defines abstract `Generator` and `GeneratorForAnnotation` classes, and provides concrete `Builder` implementations (`PartBuilder`, `SharedPartBuilder`, `LibraryBuilder`) that wrap generators into build-compatible builders. The library also includes utilities for type checking (`TypeChecker`), reading constant annotation values (`ConstantReader`), reviving constant expressions (`Revivable`), and navigating library elements (`LibraryReader`). A `CombiningBuilder` merges multiple generated part files into a single `.g.dart` output. The codebase is well-structured, thoroughly tested, and actively maintained by the Dart team. It is not a standalone application but a framework dependency for packages that need to generate Dart code at build time.
This is the official Dart documentation generator (`dartdoc`), exposed as `dart doc` in the Dart SDK. It parses Dart source code using the `analyzer` package, builds an in-memory model of packages, libraries, classes, enums, extensions, mixins, typedefs, and their members, then generates static HTML documentation. The architecture is a CLI tool with a clear separation of concerns: source analysis (model layer), template rendering (Mustachio engine), and output generation (HTML backend). Key entry points are `bin/dartdoc.dart` and `lib/src/dartdoc.dart` (the `Dartdoc` class orchestrating generation). The system relies on a custom template engine called Mustachio, which pre-compiles Mustache templates into optimized Dart render functions via an AOT compiler, avoiding runtime reflection. The generated HTML includes a client-side JavaScript frontend (`docs.dart.js`) providing search, dark/light theme toggle, copy-to-clipboard, and sidebar navigation. Configuration is handled through `dartdoc_options.yaml` files and command-line arguments, with a hierarchical option system that supports per-package overrides. The codebase demonstrates strong engineering practices: extensive test coverage (unit, integration, and golden HTML tests), a structured warning/error system, canonicalization logic for re-exported elements, and support for advanced Dart features like records, macros, sealed classes, and null safety. Several components are cleanly isolated and reusable, including the Mustachio template engine, a generic async task queue, a terminal progress bar, and a configurable source link generator.