Skip to content

Commit e538d71

Browse files
committed
lib stuff (use ansi colors instead of console.foreground)
1 parent 5cab3c2 commit e538d71

File tree

3 files changed

+40
-9
lines changed

3 files changed

+40
-9
lines changed

Lib/Runner.cs

+3-5
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,10 @@ public static void RunAll(bool executeSolvers, bool showSplashScreen, bool showL
190190
}
191191

192192
private static void WriteLine(ConsoleColor color = ConsoleColor.Gray, string text = "") {
193-
Write(color, text + "\n");
193+
Terminal.WriteLine(color, text);
194194
}
195195
private static void Write(ConsoleColor color = ConsoleColor.Gray, string text = "") {
196-
var c = Console.ForegroundColor;
197-
Console.ForegroundColor = color;
198-
Console.Write(text);
199-
Console.ForegroundColor = c;
196+
Terminal.Write(color, text);
200197
}
198+
201199
}

Lib/SlocChart.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,12 @@ public static void Show(int year, List<(int day, int sloc)> slocs) {
6868
rows.Insert(0, row);
6969
}
7070

71-
var c = Console.ForegroundColor;
7271
foreach (var row in rows) {
7372
foreach (var item in row) {
74-
Console.ForegroundColor = item.c;
75-
Console.Write(item.st);
73+
Terminal.Write(item.c, item.st);
7674
}
7775
Console.WriteLine();
7876
}
79-
Console.ForegroundColor = c;
8077
Console.WriteLine("");
8178
}
8279
}

Lib/Terminal.cs

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
using System;
3+
4+
class Terminal {
5+
public static void WriteLine(ConsoleColor color = ConsoleColor.Gray, string text = "") {
6+
Write(color, text + "\n");
7+
}
8+
public static void Write(ConsoleColor color = ConsoleColor.Gray, string text = "") {
9+
10+
Console.Write($"\u001b[{ToAnsiColorCode(color)}");
11+
Console.Write(text);
12+
Console.Write("\u001b[0m");
13+
}
14+
15+
private static string ToAnsiColorCode(ConsoleColor color) {
16+
switch(color) {
17+
case ConsoleColor.Black: return "30m";
18+
case ConsoleColor.DarkRed: return "31m";
19+
case ConsoleColor.DarkGreen: return "32m";
20+
case ConsoleColor.DarkYellow: return "33m";
21+
case ConsoleColor.DarkBlue: return "34m";
22+
case ConsoleColor.DarkMagenta: return "35m";
23+
case ConsoleColor.DarkCyan: return "36m";
24+
case ConsoleColor.DarkGray: return "37m";
25+
case ConsoleColor.Gray: return "90m";
26+
case ConsoleColor.Red: return "91m";
27+
case ConsoleColor.Green: return "92m";
28+
case ConsoleColor.Yellow: return "93m";
29+
case ConsoleColor.Blue: return "94m";
30+
case ConsoleColor.Magenta: return "95m";
31+
case ConsoleColor.Cyan: return "96m";
32+
case ConsoleColor.White: return "97m";
33+
}
34+
throw new Exception($"unhandled color code {color}");
35+
}
36+
}

0 commit comments

Comments
 (0)