|
|
|
@ -4,30 +4,35 @@ import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"strings"
|
|
|
|
|
"unicode/utf8"
|
|
|
|
|
|
|
|
|
|
"github.com/acarl005/stripansi"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// AlignLeft align left
|
|
|
|
|
func AlignLeft(s string, n int) string {
|
|
|
|
|
func AlignLeft(t string, n int) string {
|
|
|
|
|
s := stripansi.Strip(t)
|
|
|
|
|
slen := utf8.RuneCountInString(s)
|
|
|
|
|
if slen > n {
|
|
|
|
|
return s[:n]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return fmt.Sprintf("%s%s", s, strings.Repeat(" ", n-slen))
|
|
|
|
|
return fmt.Sprintf("%s%s", t, strings.Repeat(" ", n-slen))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AlignRight align right
|
|
|
|
|
func AlignRight(s string, n int) string {
|
|
|
|
|
func AlignRight(t string, n int) string {
|
|
|
|
|
s := stripansi.Strip(t)
|
|
|
|
|
slen := utf8.RuneCountInString(s)
|
|
|
|
|
if slen > n {
|
|
|
|
|
return s[:n]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return fmt.Sprintf("%s%s", strings.Repeat(" ", n-slen), s)
|
|
|
|
|
return fmt.Sprintf("%s%s", strings.Repeat(" ", n-slen), t)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AlignCenter align center
|
|
|
|
|
func AlignCenter(s string, n int) string {
|
|
|
|
|
func AlignCenter(t string, n int) string {
|
|
|
|
|
s := stripansi.Strip(t)
|
|
|
|
|
slen := utf8.RuneCountInString(s)
|
|
|
|
|
if slen > n {
|
|
|
|
|
return s[:n]
|
|
|
|
@ -37,5 +42,5 @@ func AlignCenter(s string, n int) string {
|
|
|
|
|
lpad := pad
|
|
|
|
|
rpad := n - slen - lpad
|
|
|
|
|
|
|
|
|
|
return fmt.Sprintf("%s%s%s", strings.Repeat(" ", lpad), s, strings.Repeat(" ", rpad))
|
|
|
|
|
return fmt.Sprintf("%s%s%s", strings.Repeat(" ", lpad), t, strings.Repeat(" ", rpad))
|
|
|
|
|
}
|
|
|
|
|