truncateStartToWidth function

String truncateStartToWidth(
  1. String text,
  2. int maxWidth
)

Truncates from the start of a string, keeping the tail end. Prepends '\u2026' when truncation occurs.

Implementation

String truncateStartToWidth(String text, int maxWidth) {
  if (stringWidth(text) <= maxWidth) return text;
  if (maxWidth <= 1) return '\u2026';

  final chars = text.characters.toList();
  var width = 0;
  var startIdx = chars.length;

  for (var i = chars.length - 1; i >= 0; i--) {
    final charWidth = stringWidth(chars[i]);
    if (width + charWidth > maxWidth - 1) break;
    width += charWidth;
    startIdx = i;
  }

  return '\u2026${chars.sublist(startIdx).join()}';
}