wrapAtChars method

  1. @useResult
String wrapAtChars(
  1. int width
)

Wraps this string at width character boundaries (grapheme-safe). Returns chunks joined by newline.

Implementation

@useResult
String wrapAtChars(int width) {
  if (width < 1) return this;
  final Characters charSeq = characters;
  if (charSeq.length <= width) return this;
  final int partCount = (charSeq.length / width).ceil();
  final List<String> parts = List<String>.filled(partCount, '');
  for (int i = 0; i < partCount; i++) {
    final int start = i * width;
    final int end = (start + width) > charSeq.length ? charSeq.length : start + width;
    parts[i] = charSeq.getRange(start, end).string;
  }
  return parts.join('\n');
}