var ( // EastAsianWidth will be set true if the current locale is CJK EastAsianWidth bool // StrictEmojiNeutral should be set false if handle broken fonts StrictEmojiNeutral bool = true // DefaultCondition is a condition in current locale DefaultCondition = &Condition{ EastAsianWidth: false, StrictEmojiNeutral: true, } )
func CreateLUT()
CreateLUT will create an in-memory lookup table of 557055 bytes for faster operation. This should not be called concurrently with other operations.
func FillLeft(s string, w int) string
FillLeft return string filled in left by spaces in w cells
func FillRight(s string, w int) string
FillRight return string filled in left by spaces in w cells
func IsAmbiguousWidth(r rune) bool
IsAmbiguousWidth returns whether is ambiguous width or not.
func IsEastAsian() bool
IsEastAsian return true if the current locale is CJK
func IsNeutralWidth(r rune) bool
IsNeutralWidth returns whether is neutral width or not.
func RuneWidth(r rune) int
RuneWidth returns the number of cells in r. See http://www.unicode.org/reports/tr11/
func StringWidth(s string) (width int)
StringWidth return width as you can see
func Truncate(s string, w int, tail string) string
Truncate return string truncated with w cells
func TruncateLeft(s string, w int, prefix string) string
TruncateLeft cuts w cells from the beginning of the `s`.
func Wrap(s string, w int) string
Wrap return string wrapped with w cells
Condition have flag EastAsianWidth whether the current locale is CJK or not.
type Condition struct { EastAsianWidth bool StrictEmojiNeutral bool // contains filtered or unexported fields }
func NewCondition() *Condition
NewCondition return new instance of Condition which is current locale.
func (c *Condition) CreateLUT()
CreateLUT will create an in-memory lookup table of 557056 bytes for faster operation. This should not be called concurrently with other operations on c. If options in c is changed, CreateLUT should be called again.
func (c *Condition) FillLeft(s string, w int) string
FillLeft return string filled in left by spaces in w cells
func (c *Condition) FillRight(s string, w int) string
FillRight return string filled in left by spaces in w cells
func (c *Condition) RuneWidth(r rune) int
RuneWidth returns the number of cells in r. See http://www.unicode.org/reports/tr11/
func (c *Condition) StringWidth(s string) (width int)
StringWidth return width as you can see
func (c *Condition) Truncate(s string, w int, tail string) string
Truncate return string truncated with w cells
func (c *Condition) TruncateLeft(s string, w int, prefix string) string
TruncateLeft cuts w cells from the beginning of the `s`.
func (c *Condition) Wrap(s string, w int) string
Wrap return string wrapped with w cells