Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions dartdoc_test/lib/src/logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,24 @@ class Summary {

/// Get summery from [DartdocAnalysisResult].
factory Summary.from(List<DartdocAnalysisResult> results) {
final isFailed = results.indexWhere((r) => r.errors.isNotEmpty) != -1;
final errors =
results.expand((r) => r.errors).where((e) => e.commentSpan != null);
// Get all errors from all results
final allErrors = results.expand((r) => r.errors);

// Check if there are any errors at all
final isFailed = allErrors.isNotEmpty;

// Count only errors that have a comment span (user-facing errors)
final errorsWithSpan = allErrors.where((e) => e.commentSpan != null);

// Get all code samples
final samples = results.map((r) => r.file);

// Get unique file paths
final files =
samples.map((s) => s.sample.comment.span.sourceUrl?.path).toSet();
return Summary(isFailed, errors.length, samples.length, files.length);

return Summary(
isFailed, errorsWithSpan.length, samples.length, files.length);
}

@override
Expand Down
11 changes: 10 additions & 1 deletion dartdoc_test/lib/src/model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,16 @@ final class DocumentationCodeSample {
});

/// Whether the code sample has a `main` function.
bool get hasMain => code.contains('void main()');
/// Detects variations like:
/// - void main()
/// - Future<void> main()
/// - Future main()
/// - main()
bool get hasMain {
// Check for any main function declaration
// Matches: main(), void main(), Future<void> main(), Future main()
return RegExp(r'\b(Future<void>|Future|void)?\s*main\s*\(').hasMatch(code);
}

/// Create a sample by wrapping the code with a main function and imports.
String wrappedCode(Directory testDir) {
Expand Down
2 changes: 1 addition & 1 deletion dartdoc_test/lib/src/resource.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import 'package:source_span/source_span.dart';
import 'dartdoc_test.dart';
import 'model.dart';

const _testPath = '.dart_tool/dartdoc_test';
final _testPath = p.join('.dart_tool', 'dartdoc_test');

final _currentDir = Directory.current;

Expand Down