| package ansi |
| |
| import ( |
| "fmt" |
| "sort" |
| |
| colorable "github.com/mattn/go-colorable" |
| ) |
| |
| // PrintStyles prints all style combinations to the terminal. |
| func PrintStyles() { |
| // for compatibility with Windows, not needed for *nix |
| stdout := colorable.NewColorableStdout() |
| |
| bgColors := []string{ |
| "", |
| ":black", |
| ":red", |
| ":green", |
| ":yellow", |
| ":blue", |
| ":magenta", |
| ":cyan", |
| ":white", |
| } |
| |
| keys := make([]string, 0, len(Colors)) |
| for k := range Colors { |
| keys = append(keys, k) |
| } |
| |
| sort.Sort(sort.StringSlice(keys)) |
| |
| for _, fg := range keys { |
| for _, bg := range bgColors { |
| fmt.Fprintln(stdout, padColor(fg, []string{"" + bg, "+b" + bg, "+bh" + bg, "+u" + bg})) |
| fmt.Fprintln(stdout, padColor(fg, []string{"+s" + bg, "+i" + bg})) |
| fmt.Fprintln(stdout, padColor(fg, []string{"+uh" + bg, "+B" + bg, "+Bb" + bg /* backgrounds */, "" + bg + "+h"})) |
| fmt.Fprintln(stdout, padColor(fg, []string{"+b" + bg + "+h", "+bh" + bg + "+h", "+u" + bg + "+h", "+uh" + bg + "+h"})) |
| } |
| } |
| } |
| |
| func pad(s string, length int) string { |
| for len(s) < length { |
| s += " " |
| } |
| return s |
| } |
| |
| func padColor(color string, styles []string) string { |
| buffer := "" |
| for _, style := range styles { |
| buffer += Color(pad(color+style, 20), color+style) |
| } |
| return buffer |
| } |