analyze static method

OverflowResult analyze(
  1. FlutterErrorDetails details
)

Implementation

static OverflowResult analyze(FlutterErrorDetails details) {
  final error = details.exceptionAsString();
  final stack = details.stack?.toString() ?? '';
  final context = details.context?.toString() ?? '';
  final informationCollector = details.informationCollector?.call();
  final widgetInfo =
      informationCollector?.map((e) => e.toStringDeep()).join('\n') ?? '';

  final location = _extractLocation(stack);
  final parentWidget = _extractParentWidget(context, widgetInfo);
  final direction = _extractOverflowDirection(error);
  final pixels = _extractOverflowPixels(error);
  final widgetName = _extractWidgetName(error, context, widgetInfo);

  return OverflowResult(
    widgetName: widgetName,
    fileName: location?['file'] ?? 'Unknown File',
    line: location?['line'] != null ? int.tryParse(location!['line']!) : null,
    column: location?['column'] != null
        ? int.tryParse(location!['column']!)
        : null,
    parentWidget: parentWidget,
    overflowDirection: direction,
    overflowPixels: pixels,
    suggestion: _generateSuggestion(direction),
  );
}