Introduce Bun.stringWidth (#8327)

* Introduce `Bun.stringWidth`

* [autofix.ci] apply automated fixes

* Update utils.md

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
Jarred Sumner
2024-01-21 04:47:36 -08:00
committed by GitHub
parent 7b9201a0fc
commit b82656d9fc
16 changed files with 391 additions and 81 deletions

View File

@@ -940,11 +940,21 @@ pub const String = extern struct {
pub fn visibleWidth(this: *const String) usize {
if (this.isUTF8()) {
return bun.strings.visibleUTF8Width(this.utf8());
return bun.strings.visible.width.utf8(this.utf8());
} else if (this.isUTF16()) {
return bun.strings.visibleUTF16Width(this.utf16());
return bun.strings.visible.width.utf16(this.utf16());
} else {
return bun.strings.visibleLatin1Width(this.latin1());
return bun.strings.visible.width.ascii(this.latin1());
}
}
pub fn visibleWidthExcludeANSIColors(this: *const String) usize {
if (this.isUTF8()) {
return bun.strings.visible.width.exclude_ansi_colors.utf8(this.utf8());
} else if (this.isUTF16()) {
return bun.strings.visible.width.exclude_ansi_colors.utf16(this.utf16());
} else {
return bun.strings.visible.width.exclude_ansi_colors.ascii(this.latin1());
}
}