scan method

  1. @override
Future<ScannerResult> scan(
  1. ProjectContext context
)
override

Executes the scan and returns a ScannerResult.

Implementation

@override
Future<ScannerResult> scan(ProjectContext context) async {
  context.logger.startSpinner('Scanning Performance...');
  final issues = <Issue>[];

  final dartFiles = FileUtils.getDartFiles(context.directory);
  final parser = AstParser(context);

  for (final file in dartFiles) {
    final content = await file.readAsString();
    final unit = parser.parseFile(file.path, content);
    if (unit == null) continue;

    final visitor = _PerformanceVisitor(file.path, issues);
    unit.visitChildren(visitor);
  }

  context.logger.stopSpinner();
  return ScannerResult(issues: issues);
}