public void WriteString(CrayonString str) { var tokens = str.Tokenize(); var lastColor = Console.ForegroundColor; try { if (tokens.Count == 0) { /// text is not colored Console.WriteLine(str.Text); return; } foreach (var token in tokens) { WriteToken(token); } this.WriteLine(); } finally { Console.ForegroundColor = lastColor; } }
public static CrayonString operator +(CrayonString s1, CrayonString s2) { CrayonString s3 = new CrayonString(s1.Tokens); s3.Tokens.AddRange(s2.Tokens); s3.text = Join(s3.Tokens); return s3; }
public static void Write(CrayonString str) { str.WriteToConsole(); }
public void WriteToken(CrayonString.CrayonToken token) { Write(token.Text, token.Color.ConsoleColor); }