analyze method

Future<AnalysisResults> analyze({
  1. required Directory dir,
})

Implementation

Future<AnalysisResults> analyze({
  required Directory dir,
}) async {
  final result = await _runner.run(
    ['analyze', '--format=json', dir.path],
    ignoreError: true,
  );

  final jsonStart = result.indexOf('{');
  final jsonEnd = result.lastIndexOf('}');
  if (jsonStart == -1 || jsonEnd == -1) {
    return AnalysisResults(version: 0, diagnostics: const []);
  }

  final jsonContent = result.substring(jsonStart, jsonEnd + 1);
  return AnalysisResults.fromJson(jsonDecode(jsonContent));
}