summaryrefslogtreecommitdiff
path: root/internal/color/paint.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/color/paint.go')
-rw-r--r--internal/color/paint.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/internal/color/paint.go b/internal/color/paint.go
new file mode 100644
index 0000000..7862467
--- /dev/null
+++ b/internal/color/paint.go
@@ -0,0 +1,31 @@
+package color
+
+import "fmt"
+
+// Paint paints a given text in a given foreground/background color combination.
+func Paint(text string, fg FgColor, bg BgColor) string {
+ return fmt.Sprintf("%s%s%s%s%s", fg, bg, text, BgDefault, FgDefault)
+}
+
+// PaintWithAttr paints a given text in a given foreground/background/attribute combination
+func PaintWithAttr(text string, fg FgColor, bg BgColor, attr Attribute) string {
+ if attr == AttrNone {
+ return Paint(text, fg, bg)
+ }
+ return fmt.Sprintf("%s%s%s%s%s%s%s", fg, bg, attr, text, AttrReset, BgDefault, FgDefault)
+}
+
+// PaintFg paints a given text in a given foreground color.
+func PaintFg(text string, fg FgColor) string {
+ return fmt.Sprintf("%s%s%s", fg, text, FgDefault)
+}
+
+// PaintBg paints a given text in a given background color.
+func PaintBg(text string, bg BgColor) string {
+ return fmt.Sprintf("%s%s%s", bg, text, BgDefault)
+}
+
+// PaintAttr adds a given attribute to a given text, such as "bold" or "italic".
+func PaintAttr(text string, attr Attribute) string {
+ return fmt.Sprintf("%s%s%s", attr, text, AttrReset)
+}