diagram_dart 0.1.0
diagram_dart: ^0.1.0 copied to clipboard
Analyzes Dart projects and generates diagrams from source code, detecting inheritance, interfaces, mixins, and dependencies.
example/main.dart
import 'package:diagram_dart/diagram_dart.dart';
Future<void> main() async {
// Analyze the test fixtures
final parser = ParseDart('test/fixtures');
print('Analyzing Dart project...\n');
final result = await parser.analyze();
print('Found ${result.classes.length} classes:\n');
for (final classInfo in result.classes) {
print(' - ${classInfo.name} (${classInfo.kind})');
if (classInfo.extendsClass != null) {
print(' extends: ${classInfo.extendsClass}');
}
if (classInfo.implementsList.isNotEmpty) {
print(' implements: ${classInfo.implementsList.join(", ")}');
}
if (classInfo.withList.isNotEmpty) {
print(' with: ${classInfo.withList.join(", ")}');
}
if (classInfo.usesList.isNotEmpty) {
print(' uses: ${classInfo.usesList.join(", ")}');
}
}
print('\n--- Mermaid Diagram ---\n');
print(result.toMermaid());
// Save outputs
await result.saveMermaidFile('diagram.mmd');
await result.saveJsonFile('diagram.json');
await result.saveHtmlFile('diagram.html');
await result.savePngFile('diagram.png');
print('\nā Saved diagram.mmd, diagram.json, diagram.html, and diagram.png');
print('\nVisualization options:');
print('1. Open diagram.html in your browser (recommended)');
print('2. Open diagram.png to view the rendered diagram');
print('3. Copy content of diagram.mmd to https://mermaid.live');
}