diff --git a/src/bun.js/VirtualMachine.zig b/src/bun.js/VirtualMachine.zig index c80048a9ee..0e8bba0807 100644 --- a/src/bun.js/VirtualMachine.zig +++ b/src/bun.js/VirtualMachine.zig @@ -722,7 +722,7 @@ pub inline fn autoGarbageCollect(this: *const VirtualMachine) void { pub fn reload(this: *VirtualMachine, _: *HotReloader.Task) void { Output.debug("Reloading...", .{}); - const should_clear_terminal = !this.transpiler.env.hasSetNoClearTerminalOnReload(!Output.enable_ansi_colors); + const should_clear_terminal = !this.transpiler.env.hasSetNoClearTerminalOnReload(!Output.enable_ansi_colors_stdout); if (this.hot_reload == .watch) { Output.flush(); bun.reloadProcess( @@ -1978,7 +1978,7 @@ pub fn printException( .stack_check = bun.StackCheck.init(), }; defer formatter.deinit(); - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { this.printErrorlikeObject(exception.value(), exception, exception_list, &formatter, Writer, writer, true, allow_side_effects); } else { this.printErrorlikeObject(exception.value(), exception, exception_list, &formatter, Writer, writer, false, allow_side_effects); @@ -2017,7 +2017,7 @@ pub noinline fn runErrorHandler(this: *VirtualMachine, result: JSValue, exceptio .error_display_level = .full, }; defer formatter.deinit(); - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |enable_colors| this.printErrorlikeObject(result, null, exception_list, &formatter, @TypeOf(writer), writer, enable_colors, true), } } diff --git a/src/bun.js/api/BunObject.zig b/src/bun.js/api/BunObject.zig index 60a13a1e83..596aa7c18f 100644 --- a/src/bun.js/api/BunObject.zig +++ b/src/bun.js/api/BunObject.zig @@ -561,7 +561,7 @@ pub fn getOrigin(globalThis: *jsc.JSGlobalObject, _: *jsc.JSObject) jsc.JSValue pub fn enableANSIColors(globalThis: *jsc.JSGlobalObject, _: *jsc.JSObject) jsc.JSValue { _ = globalThis; - return JSValue.jsBoolean(Output.enable_ansi_colors); + return JSValue.jsBoolean(Output.enable_ansi_colors_stdout or Output.enable_ansi_colors_stderr); } fn getMain(globalThis: *jsc.JSGlobalObject) callconv(jsc.conv) jsc.JSValue { diff --git a/src/bun.js/bindings/JSGlobalObject.zig b/src/bun.js/bindings/JSGlobalObject.zig index 478558a99a..3ef7062c74 100644 --- a/src/bun.js/bindings/JSGlobalObject.zig +++ b/src/bun.js/bindings/JSGlobalObject.zig @@ -376,7 +376,7 @@ pub const JSGlobalObject = opaque { } pub fn throwPretty(this: *JSGlobalObject, comptime fmt: [:0]const u8, args: anytype) bun.JSError { - const instance = switch (Output.enable_ansi_colors) { + const instance = switch (Output.enable_ansi_colors_stderr) { inline else => |enabled| this.createErrorInstance(Output.prettyFmt(fmt, enabled), args), }; bun.assert(instance != .zero); diff --git a/src/bun.js/bindings/JSValue.zig b/src/bun.js/bindings/JSValue.zig index 9a208b2d4b..fd8ab95131 100644 --- a/src/bun.js/bindings/JSValue.zig +++ b/src/bun.js/bindings/JSValue.zig @@ -727,7 +727,7 @@ pub const JSValue = enum(i64) { defer buf.deinit(); var writer = buf.writer(); - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |enabled| try writer.print(Output.prettyFmt(fmt, enabled), args), } return String.init(buf.slice()).toJS(globalThis); diff --git a/src/bun.js/hot_reloader.zig b/src/bun.js/hot_reloader.zig index 2f00201003..ec49bcf0f9 100644 --- a/src/bun.js/hot_reloader.zig +++ b/src/bun.js/hot_reloader.zig @@ -291,7 +291,7 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime this.transpiler.resolver.watcher = bun.resolver.ResolveWatcher(*Watcher, Watcher.onMaybeWatchDirectory).init(this.bun_watcher.?); } - clear_screen = !this.transpiler.env.hasSetNoClearTerminalOnReload(!Output.enable_ansi_colors); + clear_screen = !this.transpiler.env.hasSetNoClearTerminalOnReload(!Output.enable_ansi_colors_stdout); reloader.getContext().start() catch @panic("Failed to start File Watcher"); } diff --git a/src/bun.js/test/diff_format.zig b/src/bun.js/test/diff_format.zig index ee78b91e84..d4d60f7d05 100644 --- a/src/bun.js/test/diff_format.zig +++ b/src/bun.js/test/diff_format.zig @@ -11,7 +11,7 @@ pub const DiffFormatter = struct { // defer scope.deinit(); // TODO: fix leaks const allocator = scope.allocator(); - const diff_config: DiffConfig = .default(Output.isAIAgent(), Output.enable_ansi_colors); + const diff_config: DiffConfig = .default(Output.isAIAgent(), Output.enable_ansi_colors_stderr); if (this.expected_string != null and this.received_string != null) { const received = this.received_string.?; diff --git a/src/bun.js/test/expect.zig b/src/bun.js/test/expect.zig index 3c7483b831..441970f034 100644 --- a/src/bun.js/test/expect.zig +++ b/src/bun.js/test/expect.zig @@ -109,7 +109,7 @@ pub const Expect = struct { } pub fn throwPrettyMatcherError(globalThis: *JSGlobalObject, custom_label: bun.String, matcher_name: anytype, matcher_params: anytype, flags: Flags, comptime message_fmt: string, message_args: anytype) bun.JSError { - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |colors| { const chain = switch (flags.promise) { .resolves => if (flags.not) Output.prettyFmt("resolves.not.", colors) else Output.prettyFmt("resolves.", colors), @@ -164,7 +164,7 @@ pub const Expect = struct { }; value.ensureStillAlive(); - const matcher_params = switch (Output.enable_ansi_colors) { + const matcher_params = switch (Output.enable_ansi_colors_stderr) { inline else => |colors| comptime Output.prettyFmt(matcher_params_fmt, colors), }; return processPromise(this.custom_label, this.flags, globalThis, value, matcher_name, matcher_params, false); @@ -1026,7 +1026,7 @@ pub const Expect = struct { "Matcher functions should return an object in the following format:\n" ++ " {{message?: string | function, pass: boolean}}\n" ++ "'{any}' was returned"; - const err = switch (Output.enable_ansi_colors) { + const err = switch (Output.enable_ansi_colors_stderr) { inline else => |colors| globalThis.createErrorInstance(Output.prettyFmt(fmt, colors), .{ matcher_name, result.toFmt(&formatter) }), }; err.put(globalThis, ZigString.static("name"), bun.String.static("InvalidMatcherError").toJS(globalThis)); @@ -1112,7 +1112,7 @@ pub const Expect = struct { } const matcher_params = CustomMatcherParamsFormatter{ - .colors = Output.enable_ansi_colors, + .colors = Output.enable_ansi_colors_stderr, .globalThis = globalThis, .matcher_fn = matcher_fn, }; @@ -1146,7 +1146,7 @@ pub const Expect = struct { const matcher_name = try matcher_fn.getName(globalThis); const matcher_params = CustomMatcherParamsFormatter{ - .colors = Output.enable_ansi_colors, + .colors = Output.enable_ansi_colors_stderr, .globalThis = globalThis, .matcher_fn = matcher_fn, }; @@ -1855,7 +1855,7 @@ pub const ExpectMatcherUtils = struct { var writer = buffered_writer.writer(); if (comptime color_or_null) |color| { - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { try writer.writeAll(Output.prettyFmt(color, true)); } } @@ -1865,7 +1865,7 @@ pub const ExpectMatcherUtils = struct { try writer.print("{}", .{value.toFmt(&formatter)}); if (comptime color_or_null) |_| { - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { try writer.writeAll(Output.prettyFmt("", true)); } } diff --git a/src/bun.js/test/expect/toHaveBeenCalledWith.zig b/src/bun.js/test/expect/toHaveBeenCalledWith.zig index 9ca450da6f..2ff75bd71c 100644 --- a/src/bun.js/test/expect/toHaveBeenCalledWith.zig +++ b/src/bun.js/test/expect/toHaveBeenCalledWith.zig @@ -101,7 +101,7 @@ pub fn toHaveBeenCalledWith(this: *Expect, globalThis: *JSGlobalObject, callfram \\ Number of calls: {d} ; - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |colors| { return this.throw(globalThis, signature, Output.prettyFmt("\n\n" ++ fmt ++ "\n", colors), .{ expected_args_js_array.toFmt(&formatter), diff --git a/src/bun.js/test/expect/toHaveReturnedWith.zig b/src/bun.js/test/expect/toHaveReturnedWith.zig index a7c5de26d6..3de3197ada 100644 --- a/src/bun.js/test/expect/toHaveReturnedWith.zig +++ b/src/bun.js/test/expect/toHaveReturnedWith.zig @@ -106,7 +106,7 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: \\ Number of calls: {d} ; - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |colors| { return this.throw(globalThis, signature, Output.prettyFmt("\n\n" ++ fmt ++ "\n", colors), .{ expected.toFmt(&formatter), @@ -131,7 +131,7 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: \\ Number of returns: {d} ; - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |colors| { return this.throw(globalThis, signature, Output.prettyFmt("\n\n" ++ fmt ++ "\n", colors), .{ expected.toFmt(&formatter), diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig index 7edff915f2..412c4eab6d 100644 --- a/src/cli/create_command.zig +++ b/src/cli/create_command.zig @@ -131,7 +131,7 @@ pub const ProgressBuf = struct { } pub fn pretty(comptime fmt: string, args: anytype) !string { - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stdout) { return ProgressBuf.print(comptime Output.prettyFmt(fmt, true), args); } else { return ProgressBuf.print(comptime Output.prettyFmt(fmt, false), args); @@ -2212,7 +2212,7 @@ pub const Example = struct { ); async_http.client.flags.reject_unauthorized = env_loader.getTLSRejectUnauthorized(); - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stdout) { async_http.client.progress_node = progress_node; } diff --git a/src/cli/init_command.zig b/src/cli/init_command.zig index e2ed22ead6..4f88e56bbf 100644 --- a/src/cli/init_command.zig +++ b/src/cli/init_command.zig @@ -42,7 +42,7 @@ pub const InitCommand = struct { extern fn Bun__ttySetMode(fd: i32, mode: i32) i32; fn processRadioButton(label: string, comptime Choices: type) !Choices { - const colors = Output.enable_ansi_colors; + const colors = Output.enable_ansi_colors_stdout; const choices = switch (colors) { inline else => |colors_comptime| comptime choices: { const choices_fields = bun.meta.EnumFields(Choices); diff --git a/src/cli/outdated_command.zig b/src/cli/outdated_command.zig index c3b742568d..df8162d0a3 100644 --- a/src/cli/outdated_command.zig +++ b/src/cli/outdated_command.zig @@ -69,7 +69,7 @@ pub const OutdatedCommand = struct { .ok => |ok| ok.lockfile, }; - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stdout) { inline else => |enable_ansi_colors| { if (manager.options.filter_patterns.len > 0) { const filters = manager.options.filter_patterns; diff --git a/src/cli/pack_command.zig b/src/cli/pack_command.zig index f527bfc64b..a8564ea9fb 100644 --- a/src/cli/pack_command.zig +++ b/src/cli/pack_command.zig @@ -1635,7 +1635,7 @@ pub const PackCommand = struct { var node: *Progress.Node = undefined; if (log_level.showProgress()) { progress = .{}; - progress.supports_ansi_escape_codes = Output.enable_ansi_colors; + progress.supports_ansi_escape_codes = Output.enable_ansi_colors_stderr; node = progress.start("", pack_queue.count() + bundled_pack_queue.count() + 1); node.unit = " files"; } diff --git a/src/cli/publish_command.zig b/src/cli/publish_command.zig index 8951d05654..08cd1aada0 100644 --- a/src/cli/publish_command.zig +++ b/src/cli/publish_command.zig @@ -779,12 +779,12 @@ pub const PublishCommand = struct { const offset = 0; const padding = 1; - const horizontal = if (Output.enable_ansi_colors) "─" else "-"; - const vertical = if (Output.enable_ansi_colors) "│" else "|"; - const top_left = if (Output.enable_ansi_colors) "┌" else "|"; - const top_right = if (Output.enable_ansi_colors) "┐" else "|"; - const bottom_left = if (Output.enable_ansi_colors) "└" else "|"; - const bottom_right = if (Output.enable_ansi_colors) "┘" else "|"; + const horizontal = if (Output.enable_ansi_colors_stdout) "─" else "-"; + const vertical = if (Output.enable_ansi_colors_stdout) "│" else "|"; + const top_left = if (Output.enable_ansi_colors_stdout) "┌" else "|"; + const top_right = if (Output.enable_ansi_colors_stdout) "┐" else "|"; + const bottom_left = if (Output.enable_ansi_colors_stdout) "└" else "|"; + const bottom_right = if (Output.enable_ansi_colors_stdout) "┘" else "|"; const width = (padding * 2) + auth_url_str.len; diff --git a/src/cli/update_interactive_command.zig b/src/cli/update_interactive_command.zig index 7380fce640..276204dc64 100644 --- a/src/cli/update_interactive_command.zig +++ b/src/cli/update_interactive_command.zig @@ -1162,7 +1162,7 @@ pub const UpdateInteractiveCommand = struct { } fn processMultiSelect(state: *MultiSelectState, initial_terminal_size: TerminalSize) ![]bool { - const colors = Output.enable_ansi_colors; + const colors = Output.enable_ansi_colors_stdout; // Clear any previous progress output Output.print("\r\x1B[2K", .{}); // Clear entire line @@ -1427,7 +1427,7 @@ pub const UpdateInteractiveCommand = struct { const uses_default_registry = pkg.manager.options.scope.url_hash == Install.Npm.Registry.default_url_hash and pkg.manager.scopeForPackageName(pkg.name).url_hash == Install.Npm.Registry.default_url_hash; - const package_url = if (Output.enable_ansi_colors and uses_default_registry) + const package_url = if (Output.enable_ansi_colors_stdout and uses_default_registry) try std.fmt.allocPrint(bun.default_allocator, "https://npmjs.org/package/{s}/v/{s}", .{ pkg.name, brk: { if (selected) { if (pkg.use_latest) { diff --git a/src/crash_handler.zig b/src/crash_handler.zig index d1d98ff074..4a8bfdae92 100644 --- a/src/crash_handler.zig +++ b/src/crash_handler.zig @@ -255,11 +255,11 @@ pub fn crashHandler( has_printed_message = true; } } else { - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt("", true)) catch std.posix.abort(); } writer.writeAll("oh no") catch std.posix.abort(); - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt(": multiple threads are crashing\n", true)) catch std.posix.abort(); } else { writer.writeAll(Output.prettyFmt(": multiple threads are crashing\n", true)) catch std.posix.abort(); @@ -267,13 +267,13 @@ pub fn crashHandler( } if (reason != .out_of_memory or debug_trace) { - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt("", true)) catch std.posix.abort(); } writer.writeAll("panic") catch std.posix.abort(); - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt("", true)) catch std.posix.abort(); } @@ -294,7 +294,7 @@ pub fn crashHandler( } writer.writeAll(": ") catch std.posix.abort(); - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt("", true)) catch std.posix.abort(); } writer.print("{}\n", .{reason}) catch std.posix.abort(); @@ -385,7 +385,7 @@ pub fn crashHandler( if (!has_printed_message) { has_printed_message = true; writer.writeAll("oh no") catch std.posix.abort(); - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt(": ", true)) catch std.posix.abort(); } else { writer.writeAll(Output.prettyFmt(": ", true)) catch std.posix.abort(); @@ -435,7 +435,7 @@ pub fn crashHandler( } } - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.print(Output.prettyFmt("", true), .{}) catch std.posix.abort(); } @@ -452,7 +452,7 @@ pub fn crashHandler( writer.writeAll("\n") catch std.posix.abort(); } - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt("\n", true)) catch std.posix.abort(); } else { writer.writeAll("\n") catch std.posix.abort(); @@ -957,7 +957,7 @@ pub fn printMetadata(writer: anytype) !void { } } - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { try writer.writeAll(Output.prettyFmt("", true)); } @@ -1045,7 +1045,7 @@ pub fn printMetadata(writer: anytype) !void { try writer.writeAll("\n"); } - if (Output.enable_ansi_colors) { + if (Output.enable_ansi_colors_stderr) { try writer.writeAll(Output.prettyFmt("", true)); } try writer.writeAll("\n"); diff --git a/src/fmt.zig b/src/fmt.zig index a3faac9a6d..df5266eeaa 100644 --- a/src/fmt.zig +++ b/src/fmt.zig @@ -707,12 +707,6 @@ pub const QuickAndDirtyJavaScriptSyntaxHighlighter = struct { check_for_unhighlighted_write: bool = true, redact_sensitive_information: bool = false, - - pub const default: Options = .{ - .enable_colors = Output.enable_ansi_colors, - .check_for_no_highlighting = true, - .redact_sensitive_information = false, - }; }; const ColorCode = enum { diff --git a/src/install/PackageInstaller.zig b/src/install/PackageInstaller.zig index fa615f787b..3e5e633bbf 100644 --- a/src/install/PackageInstaller.zig +++ b/src/install/PackageInstaller.zig @@ -369,7 +369,7 @@ pub const PackageInstaller = struct { const args = .{ name, @errorName(err) }; if (log_level.showProgress()) { - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |enable_ansi_colors| { this.progress.log(comptime Output.prettyFmt(fmt, enable_ansi_colors), args); }, @@ -452,7 +452,7 @@ pub const PackageInstaller = struct { const args = .{ package_name, @errorName(err) }; if (log_level.showProgress()) { - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |enable_ansi_colors| { this.progress.log(comptime Output.prettyFmt(fmt, enable_ansi_colors), args); }, @@ -1328,7 +1328,7 @@ pub const PackageInstaller = struct { const args = .{ folder_name, @errorName(err) }; if (log_level.showProgress()) { - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stderr) { inline else => |enable_ansi_colors| { this.progress.log(comptime Output.prettyFmt(fmt, enable_ansi_colors), args); }, diff --git a/src/install/PackageManager/ProgressStrings.zig b/src/install/PackageManager/ProgressStrings.zig index 308ae7f5bc..eabe5e40fd 100644 --- a/src/install/PackageManager/ProgressStrings.zig +++ b/src/install/PackageManager/ProgressStrings.zig @@ -25,23 +25,23 @@ pub const ProgressStrings = struct { pub const script_emoji: string = " ⚙️ "; pub inline fn download() string { - return if (Output.isEmojiEnabled()) download_with_emoji else download_no_emoji; + return if (Output.enable_ansi_colors_stderr) download_with_emoji else download_no_emoji; } pub inline fn save() string { - return if (Output.isEmojiEnabled()) save_with_emoji else save_no_emoji; + return if (Output.enable_ansi_colors_stderr) save_with_emoji else save_no_emoji; } pub inline fn extract() string { - return if (Output.isEmojiEnabled()) extract_with_emoji else extract_no_emoji; + return if (Output.enable_ansi_colors_stderr) extract_with_emoji else extract_no_emoji; } pub inline fn install() string { - return if (Output.isEmojiEnabled()) install_with_emoji else install_no_emoji; + return if (Output.enable_ansi_colors_stderr) install_with_emoji else install_no_emoji; } pub inline fn script() string { - return if (Output.isEmojiEnabled()) script_with_emoji else script_no_emoji; + return if (Output.enable_ansi_colors_stderr) script_with_emoji else script_no_emoji; } }; @@ -52,7 +52,7 @@ pub fn setNodeName( emoji: string, comptime is_first: bool, ) void { - if (Output.isEmojiEnabled()) { + if (Output.enable_ansi_colors_stderr) { if (is_first) { @memcpy(this.progress_name_buf[0..emoji.len], emoji); @memcpy(this.progress_name_buf[emoji.len..][0..name.len], name); diff --git a/src/install/PackageManager/install_with_manager.zig b/src/install/PackageManager/install_with_manager.zig index cb2406913c..62615573ae 100644 --- a/src/install/PackageManager/install_with_manager.zig +++ b/src/install/PackageManager/install_with_manager.zig @@ -947,7 +947,7 @@ fn printInstallSummary( // We deliberately do not disable it after this. Output.enableBuffering(); const writer = Output.writerBuffered(); - switch (Output.enable_ansi_colors) { + switch (Output.enable_ansi_colors_stdout) { inline else => |enable_ansi_colors| { try Lockfile.Printer.Tree.print(&printer, this, @TypeOf(writer), writer, enable_ansi_colors, log_level); }, diff --git a/src/install/PackageManager/security_scanner.zig b/src/install/PackageManager/security_scanner.zig index f1ad798378..ad1f9e0f7a 100644 --- a/src/install/PackageManager/security_scanner.zig +++ b/src/install/PackageManager/security_scanner.zig @@ -982,7 +982,7 @@ pub const SecurityScanSubprocess = struct { }, } } else if (this.manager.options.log_level != .silent and duration >= 1000) { - const maybeHourglass = if (Output.isEmojiEnabled()) "⏳" else ""; + const maybeHourglass = if (Output.enable_ansi_colors_stderr) "⏳" else ""; if (packages_scanned == 1) { Output.prettyErrorln("{s}[{s}] Scanning 1 package took {d}ms", .{ maybeHourglass, security_scanner, duration }); } else { diff --git a/src/logger.zig b/src/logger.zig index ab70c6b1c5..73239b6411 100644 --- a/src/logger.zig +++ b/src/logger.zig @@ -851,7 +851,7 @@ pub const Log = struct { } pub inline fn allocPrint(allocator: std.mem.Allocator, comptime fmt: string, args: anytype) OOM!string { - return switch (Output.enable_ansi_colors) { + return switch (Output.enable_ansi_colors_stderr) { inline else => |enable_ansi_colors| std.fmt.allocPrint(allocator, Output.prettyFmt(fmt, enable_ansi_colors), args), }; } @@ -1283,7 +1283,7 @@ pub const Log = struct { } pub fn print(self: *const Log, to: anytype) !void { - return switch (Output.enable_ansi_colors) { + return switch (Output.enable_ansi_colors_stderr) { inline else => |enable_ansi_colors| self.printWithEnableAnsiColors(to, enable_ansi_colors), }; } diff --git a/src/output.zig b/src/output.zig index e5dc464b2b..21ac5729d1 100644 --- a/src/output.zig +++ b/src/output.zig @@ -391,7 +391,6 @@ pub const Source = struct { enable_ansi_colors_stdout = enable_color orelse is_stdout_tty; enable_ansi_colors_stderr = enable_color orelse is_stderr_tty; - enable_ansi_colors = enable_ansi_colors_stdout or enable_ansi_colors_stderr; } stdout_stream = new_source.stream; @@ -407,7 +406,7 @@ pub const OutputStreamDescriptor = enum { terminal, }; -pub var enable_ansi_colors = Environment.isNative; +pub const enable_ansi_colors = @compileError("Deprecated to prevent accidentally using the wrong one. Use enable_ansi_colors_stdout or enable_ansi_colors_stderr instead."); pub var enable_ansi_colors_stderr = Environment.isNative; pub var enable_ansi_colors_stdout = Environment.isNative; pub var enable_buffering = Environment.isNative; @@ -429,10 +428,6 @@ pub inline fn isStdinTTY() bool { return bun_stdio_tty[0] != 0; } -pub inline fn isEmojiEnabled() bool { - return enable_ansi_colors; -} - pub fn isGithubAction() bool { if (bun.env_var.GITHUB_ACTIONS.get()) { // Do not print github annotations for AI agents because that wastes the context window. @@ -525,7 +520,7 @@ pub fn disableBuffering() void { pub fn panic(comptime fmt: string, args: anytype) noreturn { @branchHint(.cold); - if (isEmojiEnabled()) { + if (enable_ansi_colors_stderr) { std.debug.panic(comptime prettyFmt(fmt, true), args); } else { std.debug.panic(comptime prettyFmt(fmt, false), args); @@ -562,7 +557,7 @@ pub fn writerBuffered() Source.BufferedStream.Writer { } pub fn resetTerminal() void { - if (!enable_ansi_colors) { + if (!enable_ansi_colors_stderr and !enable_ansi_colors_stdout) { return; } @@ -1016,14 +1011,6 @@ pub noinline fn prettyWithPrinter(comptime fmt: string, args: anytype, comptime } } -pub noinline fn prettyWithPrinterFn(comptime fmt: string, args: anytype, comptime printFn: anytype, ctx: anytype) void { - if (enable_ansi_colors) { - printFn(ctx, comptime prettyFmt(fmt, true), args); - } else { - printFn(ctx, comptime prettyFmt(fmt, false), args); - } -} - pub noinline fn pretty(comptime fmt: string, args: anytype) void { prettyWithPrinter(fmt, args, print, .stdout); } diff --git a/src/semver/Version.zig b/src/semver/Version.zig index ed18ba2910..c1e49881ca 100644 --- a/src/semver/Version.zig +++ b/src/semver/Version.zig @@ -91,7 +91,7 @@ pub fn VersionType(comptime IntType: type) type { other_buf: string, pub fn format(this: DiffFormatter, comptime fmt_: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { - if (!Output.enable_ansi_colors) { + if (!Output.enable_ansi_colors_stdout) { // print normally if no colors const formatter: Formatter = .{ .version = this.version, .input = this.buf }; return Formatter.format(formatter, fmt_, options, writer);