Skip to content
This repository was archived by the owner on Jun 17, 2026. It is now read-only.

Commit bfce72b

Browse files
committed
c o l o r s
1 parent 0823dcc commit bfce72b

1 file changed

Lines changed: 117 additions & 29 deletions

File tree

  • source/codename/backend/system

source/codename/backend/system/Logs.hx

Lines changed: 117 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,22 @@ import haxe.PosInfos;
55
import lime.app.Application;
66
using codename.backend.system.Logs.LogTools;
77

8-
class AlertParams
9-
{
10-
public var content:String = 'None';
11-
public var title:Null<String> = null;
12-
13-
public function new(content:String = 'None', ?title:Null<String>)
14-
{
15-
this.content = content;
16-
this.title = title;
17-
}
18-
}
19-
208
class LogTools
219
{
22-
@:deprecated('The level.toLevel() function will soon be removed from backend.LogTools.') public static inline function toLevel(level:Level):String
23-
{
24-
return levelToString(level);
25-
}
26-
2710
public static inline function levelToString(level:Level):String
2811
{
2912
switch (level)
3013
{
31-
case INFO | NONE:
32-
return '[ INFO ]';
14+
case INFO:
15+
return AnsiColors.LightPurple + '[ INFO ]';
3316
case WARNING:
34-
return '[ WARNING ]';
17+
return AnsiColors.LightYellow + '[ WARNING ]';
3518
case ERROR:
36-
return '[ ERROR ]';
19+
return AnsiColors.Error + '[ ERROR ]';
3720
default:
3821
return '[ MISC ]';
3922
}
4023
}
41-
42-
public static inline function spawnAlertWindow(params:AlertParams, ?infos:haxe.PosInfos)
43-
{
44-
Logs.traceNew(params.content, ERROR, infos);
45-
Application.current.window.alert(params.content, params.title);
46-
}
4724
}
4825

4926
class Logs
@@ -74,9 +51,9 @@ class Logs
7451

7552
static function traceOverride(v:Dynamic, ?infos:PosInfos):Void traceNew(v, NONE, infos);
7653

77-
public static function traceNew(v:Dynamic, level:Level, ?infos:PosInfos):Void
54+
public static function traceNew(v:Dynamic, level:Level = NONE, ?infos:PosInfos):Void
7855
{
79-
var str = '${level.toLevel()} : ' + Log.formatOutput(v, infos).replace('\n\n', '\n').replace('\n', '\n${level.toLevel()} : ${infos.fileName}:${infos.lineNumber}: ');
56+
var str = '${level.levelToString()} : ' + Log.formatOutput(v, infos).replace('\n\n', '\n').replace('\n', '\n${level.levelToString()} : ${infos.fileName}:${infos.lineNumber}: ') + AnsiColors.Reset;
8057
#if js
8158
if (js.Syntax.typeof(untyped console) != "undefined" && (untyped console).log != null)
8259
(untyped console).log(str);
@@ -97,4 +74,115 @@ enum abstract Level(Int)
9774
var NONE = 2;
9875
var WARNING = 3;
9976
var ERROR = 4;
77+
}
78+
79+
// Thank you @notbilly in the Haxe Discord for the color codes!
80+
enum abstract AnsiColors(String) to String {
81+
// Reset
82+
var Reset = "\u001b[0m";
83+
84+
// Basic 16 colors (bright versions)
85+
var Black = "\u001b[30m";
86+
var Red = "\u001b[31m";
87+
var Green = "\u001b[32m";
88+
var Yellow = "\u001b[33m";
89+
var Blue = "\u001b[34m";
90+
var Magenta = "\u001b[35m";
91+
var Cyan = "\u001b[36m";
92+
var White = "\u001b[37m";
93+
94+
// Bright versions
95+
var BrightBlack = "\u001b[90m";
96+
var BrightRed = "\u001b[91m";
97+
var BrightGreen = "\u001b[92m";
98+
var BrightYellow = "\u001b[93m";
99+
var BrightBlue = "\u001b[94m";
100+
var BrightMagenta = "\u001b[95m";
101+
var BrightCyan = "\u001b[96m";
102+
var BrightWhite = "\u001b[97m";
103+
104+
// 256-color palette - Popular colors
105+
var Orange = "\u001b[38;5;208m";
106+
var Pink = "\u001b[38;5;205m";
107+
var Purple = "\u001b[38;5;135m";
108+
var Lime = "\u001b[38;5;154m";
109+
var Gold = "\u001b[38;5;220m";
110+
var Silver = "\u001b[38;5;249m";
111+
var Brown = "\u001b[38;5;130m";
112+
var Maroon = "\u001b[38;5;88m";
113+
var Navy = "\u001b[38;5;17m";
114+
var Olive = "\u001b[38;5;58m";
115+
var Teal = "\u001b[38;5;30m";
116+
var Aqua = "\u001b[38;5;51m";
117+
var Coral = "\u001b[38;5;203m";
118+
var Salmon = "\u001b[38;5;209m";
119+
var Khaki = "\u001b[38;5;185m";
120+
var Violet = "\u001b[38;5;177m";
121+
var Indigo = "\u001b[38;5;54m";
122+
var Turquoise = "\u001b[38;5;80m";
123+
124+
// Grays/Greys
125+
var Gray1 = "\u001b[38;5;232m";
126+
var Gray2 = "\u001b[38;5;234m";
127+
var Gray3 = "\u001b[38;5;236m";
128+
var Gray4 = "\u001b[38;5;238m";
129+
var Gray5 = "\u001b[38;5;240m";
130+
var Gray6 = "\u001b[38;5;242m";
131+
var Gray7 = "\u001b[38;5;244m";
132+
var Gray8 = "\u001b[38;5;246m";
133+
var Gray9 = "\u001b[38;5;248m";
134+
var Gray10 = "\u001b[38;5;250m";
135+
136+
// Vibrant colors
137+
var ElectricBlue = "\u001b[38;5;33m";
138+
var NeonGreen = "\u001b[38;5;46m";
139+
var HotPink = "\u001b[38;5;198m";
140+
var BrightOrange = "\u001b[38;5;202m";
141+
var ElectricPurple = "\u001b[38;5;129m";
142+
var LimeGreen = "\u001b[38;5;118m";
143+
var DeepPink = "\u001b[38;5;199m";
144+
var SkyBlue = "\u001b[38;5;117m";
145+
var SpringGreen = "\u001b[38;5;48m";
146+
var Crimson = "\u001b[38;5;196m";
147+
148+
// Pastel-ish colors
149+
var LightPink = "\u001b[38;5;217m";
150+
var LightBlue = "\u001b[38;5;152m";
151+
var LightGreen = "\u001b[38;5;157m";
152+
var LightYellow = "\u001b[38;5;230m";
153+
var LightPurple = "\u001b[38;5;183m";
154+
var LightCyan = "\u001b[38;5;159m";
155+
156+
// Dark variants
157+
var DarkRed = "\u001b[38;5;124m";
158+
var DarkGreen = "\u001b[38;5;22m";
159+
var DarkBlue = "\u001b[38;5;18m";
160+
var DarkYellow = "\u001b[38;5;136m";
161+
var DarkMagenta = "\u001b[38;5;90m";
162+
var DarkCyan = "\u001b[38;5;23m";
163+
var DarkOrange = "\u001b[38;5;166m";
164+
165+
// Earth tones
166+
var Beige = "\u001b[38;5;223m";
167+
var Tan = "\u001b[38;5;180m";
168+
var RustRed = "\u001b[38;5;160m";
169+
var ForestGreen = "\u001b[38;5;28m";
170+
var SandBrown = "\u001b[38;5;137m";
171+
var MossGreen = "\u001b[38;5;65m";
172+
173+
// Common use case colors
174+
var Success = "\u001b[38;5;46m"; // Bright green
175+
var Warning = "\u001b[38;5;226m"; // Bright yellow
176+
var Error = "\u001b[38;5;196m"; // Bright red
177+
var Info = "\u001b[38;5;39m"; // Bright blue
178+
var Debug = "\u001b[38;5;245m"; // Gray
179+
180+
// Special formatting (not colors but useful)
181+
var Bold = "\u001b[1m";
182+
var Dim = "\u001b[2m";
183+
var Italic = "\u001b[3m";
184+
var Underline = "\u001b[4m";
185+
var Blink = "\u001b[5m";
186+
var Reverse = "\u001b[7m";
187+
var Strikethrough = "\u001b[9m";
100188
}

0 commit comments

Comments
 (0)