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,
);
}