styledStringBounds function
Parses a string and returns its bounds (width/height) using a width method.
Upstream: third_party/ultraviolet/styled.go (StyledString.widthHeight).
Implementation
Rectangle styledStringBounds(String text, WidthMethod method) {
final normalized = text.replaceAll('\r\n', '\n');
final expanded = term_ansi.Ansi.expandTabs(normalized);
final lines = expanded.split('\n');
var maxWidth = 0;
for (final line in lines) {
final width = _visibleStringWidth(line, method);
if (width > maxWidth) maxWidth = width;
}
return rect(0, 0, maxWidth, lines.length);
}