parse method

Scans the directory and extracts all documentation

Implementation

Future<Documentation> parse() async {
  final files = await _findDartFiles();

  final classes = <ClassDoc>[];
  final enums = <EnumDoc>[];
  final typedefs = <TypedefDoc>[];
  final extensions = <ExtensionDoc>[];
  final categories = <String, List<String>>{};

  for (final file in files) {
    final docs = await _parseFile(file);

    classes.addAll(docs.classes);
    enums.addAll(docs.enums);
    typedefs.addAll(docs.typedefs);
    extensions.addAll(docs.extensions);

    // Build category index
    for (final cls in docs.classes) {
      if (cls.category != null) {
        categories.putIfAbsent(cls.category!, () => []).add(cls.name);
      }
    }
  }

  return Documentation(
    projectName: path.basename(rootPath),
    version: '1.0.0',
    generatedAt: DateTime.now(),
    classes: classes,
    enums: enums,
    typedefs: typedefs,
    extensions: extensions,
    categories: categories,
  );
}