formatStackTrace method

String? formatStackTrace(
  1. StackTrace? stackTrace,
  2. int? methodCount
)

Implementation

String? formatStackTrace(StackTrace? stackTrace, int? methodCount) {
  final lines = stackTrace
      .toString()
      .split('\n')
      .where(
        (line) =>
            !_discardDeviceStackTraceLine(line) &&
            !_discardWebStackTraceLine(line) &&
            !_discardBrowserStackTraceLine(line) &&
            line.isNotEmpty,
      )
      .toList();

  final formatted = <String>[];

  final stackTraceLength =
      methodCount != null ? min(lines.length, methodCount) : lines.length;

  for (int count = 0; count < stackTraceLength; count++) {
    final line = lines[count];

    if (count < stackTraceBeginIndex) {
      continue;
    }

    formatted.add('#$count   ${line.replaceFirst(RegExp(r'#\d+\s+'), '')}');
  }

  return formatted.isEmpty ? null : formatted.join('\n');
}