Function detectConfig [src]

Detect suitable TTY configuration options for the given file (commonly stdout/stderr). This includes feature checks for ANSI escape codes and the Windows console API, as well as respecting the NO_COLOR and CLICOLOR_FORCE environment variables to override the default. Will attempt to enable ANSI escape code support if necessary/possible.

Prototype

pub fn detectConfig(file: File) Config

Parameters

file: File

Source

pub fn detectConfig(file: File) Config { const force_color: ?bool = if (builtin.os.tag == .wasi) null // wasi does not support environment variables else if (process.hasNonEmptyEnvVarConstant("NO_COLOR")) false else if (process.hasNonEmptyEnvVarConstant("CLICOLOR_FORCE")) true else null; if (force_color == false) return .no_color; if (file.getOrEnableAnsiEscapeSupport()) return .escape_codes; if (native_os == .windows and file.isTty()) { var info: windows.CONSOLE_SCREEN_BUFFER_INFO = undefined; if (windows.kernel32.GetConsoleScreenBufferInfo(file.handle, &info) == windows.FALSE) { return if (force_color == true) .escape_codes else .no_color; } return .{ .windows_api = .{ .handle = file.handle, .reset_attributes = info.wAttributes, } }; } return if (force_color == true) .escape_codes else .no_color; }