analyzeLaunchFailure function

LaunchFailureAnalysis analyzeLaunchFailure(
  1. String output, {
  2. int maxContextLines = 15,
})

Implementation

LaunchFailureAnalysis analyzeLaunchFailure(
  String output, {
  int maxContextLines = 15,
}) {
  final lines = const LineSplitter().convert(output);

  final signalLineIndexes = _findSignalLineIndexes(lines);
  final primaryIndex = signalLineIndexes.isEmpty ? _findBestFallbackLine(lines) : signalLineIndexes.first;

  final category = _classifyCategory(lines, signalLineIndexes);
  final resolvedHint = _resolveRemediationHint(
    lines,
    category.category,
    category.remediationHint,
  );
  final rootSource = primaryIndex == -1 ? 'flutter process exited unexpectedly' : _cleanLine(lines[primaryIndex]);

  final categoryLabel = _categoryLabel(category.category);
  final rootCause = _buildRootCause(
    lines,
    primaryIndex,
    category.category,
    categoryLabel,
    rootSource,
  );

  final contextIndexes = signalLineIndexes.isEmpty && primaryIndex != -1 ? <int>[primaryIndex] : signalLineIndexes;

  return (
    category: category.category,
    rootCause: rootCause,
    contextLines: _buildContextLines(
      lines,
      contextIndexes,
      maxContextLines: maxContextLines,
    ),
    remediationHint: resolvedHint,
  );
}