Fix legacy code #4
|
@ -82,9 +82,15 @@ func (b *Basic) unformat() string {
|
||||||
return fmt.Sprintf("%s[%dm", escape, Reset)
|
return fmt.Sprintf("%s[%dm", escape, Reset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Format returns a string wrapped in the basic color
|
||||||
func (b *Basic) Format(text string) string {
|
func (b *Basic) Format(text string) string {
|
||||||
if len(b.Attrs) > 0 {
|
if len(b.Attrs) > 0 {
|
||||||
return b.wrap(text)
|
return b.wrap(text)
|
||||||
}
|
}
|
||||||
return text
|
return text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Formatf returns a formatted string wrapped in the basic color
|
||||||
|
func (b *Basic) Formatf(format string, v ...interface{}) string {
|
||||||
|
return b.Format(fmt.Sprintf(format, v...))
|
||||||
|
}
|
||||||
|
|
|
@ -47,3 +47,24 @@ const (
|
||||||
BgHiCyan
|
BgHiCyan
|
||||||
BgHiWhite
|
BgHiWhite
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var attrCache = make(map[BasicAttribute]*Basic)
|
||||||
|
|
||||||
|
func attr(a BasicAttribute) *Basic {
|
||||||
|
if c, ok := attrCache[a]; ok {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
c := New(a)
|
||||||
|
attrCache[a] = c
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format is a quick way to format a string using a single attribute
|
||||||
|
func (a BasicAttribute) Format(text string) string {
|
||||||
|
return attr(a).Format(text)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format is a quick way to format a formatted string using a single attribute
|
||||||
|
func (a BasicAttribute) Formatf(text string, v ...interface{}) string {
|
||||||
|
return attr(a).Formatf(text, v...)
|
||||||
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ const escape = "\x1b"
|
||||||
|
|
||||||
type Color interface {
|
type Color interface {
|
||||||
Format(text string) string
|
Format(text string) string
|
||||||
|
Formatf(text string, v ...interface{}) string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseLevel parses a string and returns a Beaver Level's Color, defaulting to Info
|
// ParseLevel parses a string and returns a Beaver Level's Color, defaulting to Info
|
||||||
|
|
|
@ -43,6 +43,12 @@ func (e *Extended) unformat() string {
|
||||||
return fmt.Sprintf("%s[%dm", escape, Reset)
|
return fmt.Sprintf("%s[%dm", escape, Reset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Format returns a string wrapped in the extended color
|
||||||
func (e *Extended) Format(text string) string {
|
func (e *Extended) Format(text string) string {
|
||||||
return e.wrap(text)
|
return e.wrap(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Formatf returns a formatted string wrapped in the extended color
|
||||||
|
func (e *Extended) Formatf(text string, v ...interface{}) string {
|
||||||
|
return e.wrap(fmt.Sprintf(text, v...))
|
||||||
|
}
|
||||||
|
|
|
@ -40,6 +40,12 @@ func (t *True) unformat() string {
|
||||||
return fmt.Sprintf("%s[%dm", escape, Reset)
|
return fmt.Sprintf("%s[%dm", escape, Reset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Format returns a string wrapped in the true color
|
||||||
func (t *True) Format(text string) string {
|
func (t *True) Format(text string) string {
|
||||||
return t.wrap(text)
|
return t.wrap(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Formatf returns a formatted string wrapped in the true color
|
||||||
|
func (t *True) Formatf(text string, v ...interface{}) string {
|
||||||
|
return t.wrap(fmt.Sprintf(text, v...))
|
||||||
|
}
|
||||||
|
|
Reference in New Issue