package main

import (
	"fmt"
	"regexp"
)

// TODO maybe datastructure
// BASH-like PS1 variable equivalent (without colours)
// TODO bold? cursive etc?
func color(c int) string {
	if colorless {
		return ""
	}
	if c < 0 {
		return "\033[0m"
	} else {
		return fmt.Sprintf("\033[0;%dm", 29+c)
	}
}

// TODO maybe make the text into some datastructure which remembers the color
func colorText(text string, color string, offColor string) string {
	return fmt.Sprintf("%s%s%s", color, text, offColor)
}

func colorUsername(username string, offColor string) string {
	var color = messageSenderDefaultColor
	if username == k.Username {
		color = mentionColor
	}
	return colorText(username, color, offColor)
}
func colorRegex(msg string, match string, color string, offColor string) string {
	var re = regexp.MustCompile(match)
	return re.ReplaceAllString(msg, colorText(`$1`, color, offColor))
}

func colorReplaceMentionMe(msg string, offColor string) string {
	//var coloredOwnName = colorText(k.Username, mentionColor, offColor)
	//return strings.Replace(msg, k.Username, coloredOwnName, -1)
	return colorRegex(msg, "(@?"+k.Username+")", mentionColor, offColor)
}