Add ability to style percentage readout

This commit is contained in:
Christian Rocha 2020-11-18 18:49:26 -05:00 committed by Christian Rocha
parent 79ca4d09d1
commit 7e5ef42924

View File

@ -89,8 +89,9 @@ type Model struct {
EmptyColor string
// Settings for rendering the numeric percentage
ShowPercentage bool
PercentFormat string // a fmt string for a float
ShowPercentage bool
PercentFormat string // a fmt string for a float
PercentageStyle *termenv.Style
useRamp bool
rampColorA colorful.Color
@ -127,9 +128,12 @@ func NewModel(opts ...Option) (*Model, error) {
func (m Model) View(percent float64) string {
b := strings.Builder{}
if m.ShowPercentage {
s := fmt.Sprintf(m.PercentFormat, percent*100)
m.bar(&b, percent, ansi.PrintableRuneWidth(s))
b.WriteString(s)
percentage := fmt.Sprintf(m.PercentFormat, percent*100)
if m.PercentageStyle != nil {
percentage = m.PercentageStyle.Styled(percentage)
}
m.bar(&b, percent, ansi.PrintableRuneWidth(percentage))
b.WriteString(percentage)
} else {
m.bar(&b, percent, 0)
}