@@ -5,45 +5,22 @@ import haxe.PosInfos;
55import lime .app .Application ;
66using 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-
208class 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
4926class 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