aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/colorizer/colors.h
diff options
context:
space:
mode:
authoramatanhead <amatanhead@yandex-team.ru>2022-02-10 16:50:04 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:50:04 +0300
commit8879605a63ac17539be5b3bd41b529791f4d4b02 (patch)
tree5739c7303cbe09d02b881e25bb294a4a173422a0 /library/cpp/colorizer/colors.h
parent830fe7ae4073c2707f3f3138303ccc56052c0327 (diff)
downloadydb-8879605a63ac17539be5b3bd41b529791f4d4b02.tar.gz
Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/colorizer/colors.h')
-rw-r--r--library/cpp/colorizer/colors.h382
1 files changed, 191 insertions, 191 deletions
diff --git a/library/cpp/colorizer/colors.h b/library/cpp/colorizer/colors.h
index 474a918994..1ac3d689f6 100644
--- a/library/cpp/colorizer/colors.h
+++ b/library/cpp/colorizer/colors.h
@@ -3,195 +3,195 @@
#include "fwd.h"
#include <util/generic/string.h>
-#include <util/generic/strbuf.h>
+#include <util/generic/strbuf.h>
#include <cstdio>
-
+
namespace NColorizer {
- /**
- * List of ECMA-48 colors.
- *
- * When printing elements of this enum via `operator<<`, `AutoColors()` (see below) function will be used
- * to produce colors, i.e. nothing will be printed to non-tty streams. When converting elements of this enum
- * via `ToString`, escape code is always returned.
- *
- * Note: as of now (2019-03), `ya make` strips out some escape codes from compiler output.
- * It also inserts `RESET` before each color code. See https://st.yandex-team.ru/DEVTOOLS-5269 for details.
- * For now, do not use `OLD`, `ST_*`, `FG_*` and `BG_*` in tools that run through `ya make`.
- *
- * Note: refrain from using black colors because there's high chance they'll not be visible on some terminals.
- * Default windows and ubuntu color schemes shows them as black letters on black background.
- * Also, white colors are barely visible in default OSX color scheme. Light black is usually fine though.
- */
- enum EAnsiCode: i8 {
- // Note: not using `GENERATE_ENUM_SERIALIZATION` because serialization generator depends on this library.
-
- /// Does not change anything.
- INVALID,
-
- /// Reset all styles and colors. Safe to use in `ya make` tools.
- RESET,
-
- /// Change style, don't change anything else.
- ST_LIGHT,
- ST_DARK,
- ST_NORMAL,
-
- /// Additional styles.
- ITALIC_ON,
- ITALIC_OFF,
- UNDERLINE_ON,
- UNDERLINE_OFF,
-
- /// Change foreground color, don't change anything else.
- FG_DEFAULT,
- FG_BLACK,
- FG_RED,
- FG_GREEN,
- FG_YELLOW,
- FG_BLUE,
- FG_MAGENTA,
- FG_CYAN,
- FG_WHITE,
-
- /// Change background color, don't change anything else.
- BG_DEFAULT,
- BG_BLACK,
- BG_RED,
- BG_GREEN,
- BG_YELLOW,
- BG_BLUE,
- BG_MAGENTA,
- BG_CYAN,
- BG_WHITE,
-
- /// Reset all styles and colors, then enable a (possibly light or dark) color. Safe to use in `ya make` tools.
- DEFAULT,
- BLACK,
- RED,
- GREEN,
- YELLOW,
- BLUE,
- MAGENTA,
- CYAN,
- WHITE,
- LIGHT_DEFAULT,
- LIGHT_BLACK,
- LIGHT_RED,
- LIGHT_GREEN,
- LIGHT_YELLOW,
- LIGHT_BLUE,
- LIGHT_MAGENTA,
- LIGHT_CYAN,
- LIGHT_WHITE,
- DARK_DEFAULT,
- DARK_BLACK,
- DARK_RED,
- DARK_GREEN,
- DARK_YELLOW,
- DARK_BLUE,
- DARK_MAGENTA,
- DARK_CYAN,
- DARK_WHITE,
- };
-
- /**
- * Produces escape codes or empty stringbuf depending on settings.
- * All color functions return zero-terminated stringbuf.
- */
- class TColors {
- public:
- static bool CalcIsTTY(FILE* file);
-
+ /**
+ * List of ECMA-48 colors.
+ *
+ * When printing elements of this enum via `operator<<`, `AutoColors()` (see below) function will be used
+ * to produce colors, i.e. nothing will be printed to non-tty streams. When converting elements of this enum
+ * via `ToString`, escape code is always returned.
+ *
+ * Note: as of now (2019-03), `ya make` strips out some escape codes from compiler output.
+ * It also inserts `RESET` before each color code. See https://st.yandex-team.ru/DEVTOOLS-5269 for details.
+ * For now, do not use `OLD`, `ST_*`, `FG_*` and `BG_*` in tools that run through `ya make`.
+ *
+ * Note: refrain from using black colors because there's high chance they'll not be visible on some terminals.
+ * Default windows and ubuntu color schemes shows them as black letters on black background.
+ * Also, white colors are barely visible in default OSX color scheme. Light black is usually fine though.
+ */
+ enum EAnsiCode: i8 {
+ // Note: not using `GENERATE_ENUM_SERIALIZATION` because serialization generator depends on this library.
+
+ /// Does not change anything.
+ INVALID,
+
+ /// Reset all styles and colors. Safe to use in `ya make` tools.
+ RESET,
+
+ /// Change style, don't change anything else.
+ ST_LIGHT,
+ ST_DARK,
+ ST_NORMAL,
+
+ /// Additional styles.
+ ITALIC_ON,
+ ITALIC_OFF,
+ UNDERLINE_ON,
+ UNDERLINE_OFF,
+
+ /// Change foreground color, don't change anything else.
+ FG_DEFAULT,
+ FG_BLACK,
+ FG_RED,
+ FG_GREEN,
+ FG_YELLOW,
+ FG_BLUE,
+ FG_MAGENTA,
+ FG_CYAN,
+ FG_WHITE,
+
+ /// Change background color, don't change anything else.
+ BG_DEFAULT,
+ BG_BLACK,
+ BG_RED,
+ BG_GREEN,
+ BG_YELLOW,
+ BG_BLUE,
+ BG_MAGENTA,
+ BG_CYAN,
+ BG_WHITE,
+
+ /// Reset all styles and colors, then enable a (possibly light or dark) color. Safe to use in `ya make` tools.
+ DEFAULT,
+ BLACK,
+ RED,
+ GREEN,
+ YELLOW,
+ BLUE,
+ MAGENTA,
+ CYAN,
+ WHITE,
+ LIGHT_DEFAULT,
+ LIGHT_BLACK,
+ LIGHT_RED,
+ LIGHT_GREEN,
+ LIGHT_YELLOW,
+ LIGHT_BLUE,
+ LIGHT_MAGENTA,
+ LIGHT_CYAN,
+ LIGHT_WHITE,
+ DARK_DEFAULT,
+ DARK_BLACK,
+ DARK_RED,
+ DARK_GREEN,
+ DARK_YELLOW,
+ DARK_BLUE,
+ DARK_MAGENTA,
+ DARK_CYAN,
+ DARK_WHITE,
+ };
+
+ /**
+ * Produces escape codes or empty stringbuf depending on settings.
+ * All color functions return zero-terminated stringbuf.
+ */
+ class TColors {
public:
+ static bool CalcIsTTY(FILE* file);
+
+ public:
explicit TColors(FILE* = stderr);
explicit TColors(bool ontty);
- TStringBuf Reset() const noexcept;
-
- TStringBuf StyleLight() const noexcept;
- TStringBuf StyleDark() const noexcept;
- TStringBuf StyleNormal() const noexcept;
-
- TStringBuf ItalicOn() const noexcept;
- TStringBuf ItalicOff() const noexcept;
- TStringBuf UnderlineOn() const noexcept;
- TStringBuf UnderlineOff() const noexcept;
-
- TStringBuf ForeDefault() const noexcept;
- TStringBuf ForeBlack() const noexcept;
- TStringBuf ForeRed() const noexcept;
- TStringBuf ForeGreen() const noexcept;
- TStringBuf ForeYellow() const noexcept;
- TStringBuf ForeBlue() const noexcept;
- TStringBuf ForeMagenta() const noexcept;
- TStringBuf ForeCyan() const noexcept;
- TStringBuf ForeWhite() const noexcept;
-
- TStringBuf BackDefault() const noexcept;
- TStringBuf BackBlack() const noexcept;
- TStringBuf BackRed() const noexcept;
- TStringBuf BackGreen() const noexcept;
- TStringBuf BackYellow() const noexcept;
- TStringBuf BackBlue() const noexcept;
- TStringBuf BackMagenta() const noexcept;
- TStringBuf BackCyan() const noexcept;
- TStringBuf BackWhite() const noexcept;
-
- TStringBuf Default() const noexcept;
- TStringBuf Black() const noexcept;
- TStringBuf Red() const noexcept;
- TStringBuf Green() const noexcept;
- TStringBuf Yellow() const noexcept;
- TStringBuf Blue() const noexcept;
- TStringBuf Magenta() const noexcept;
- TStringBuf Cyan() const noexcept;
- TStringBuf White() const noexcept;
-
- TStringBuf LightDefault() const noexcept;
- TStringBuf LightBlack() const noexcept;
- TStringBuf LightRed() const noexcept;
- TStringBuf LightGreen() const noexcept;
- TStringBuf LightYellow() const noexcept;
- TStringBuf LightBlue() const noexcept;
- TStringBuf LightMagenta() const noexcept;
- TStringBuf LightCyan() const noexcept;
- TStringBuf LightWhite() const noexcept;
-
- TStringBuf DarkDefault() const noexcept;
- TStringBuf DarkBlack() const noexcept;
- TStringBuf DarkRed() const noexcept;
- TStringBuf DarkGreen() const noexcept;
- TStringBuf DarkYellow() const noexcept;
- TStringBuf DarkBlue() const noexcept;
- TStringBuf DarkMagenta() const noexcept;
- TStringBuf DarkCyan() const noexcept;
- TStringBuf DarkWhite() const noexcept;
-
- /// Compatibility; prefer using methods without `Color` suffix in their names.
- /// Note: these behave differently from their un-suffixed counterparts.
- /// While functions declared above will reset colors completely, these will only reset foreground color and
- /// style, without changing the background color and underline/italic settings. Also, names of these functions
- /// don't conform with standard, e.g. `YellowColor` actually emits the `lite yellow` escape code.
- TStringBuf OldColor() const noexcept;
- TStringBuf BoldColor() const noexcept;
- TStringBuf BlackColor() const noexcept;
- TStringBuf BlueColor() const noexcept;
- TStringBuf GreenColor() const noexcept;
- TStringBuf CyanColor() const noexcept;
- TStringBuf RedColor() const noexcept;
- TStringBuf PurpleColor() const noexcept;
- TStringBuf BrownColor() const noexcept;
- TStringBuf LightGrayColor() const noexcept;
- TStringBuf DarkGrayColor() const noexcept;
- TStringBuf LightBlueColor() const noexcept;
- TStringBuf LightGreenColor() const noexcept;
- TStringBuf LightCyanColor() const noexcept;
- TStringBuf LightRedColor() const noexcept;
- TStringBuf LightPurpleColor() const noexcept;
- TStringBuf YellowColor() const noexcept;
- TStringBuf WhiteColor() const noexcept;
-
+ TStringBuf Reset() const noexcept;
+
+ TStringBuf StyleLight() const noexcept;
+ TStringBuf StyleDark() const noexcept;
+ TStringBuf StyleNormal() const noexcept;
+
+ TStringBuf ItalicOn() const noexcept;
+ TStringBuf ItalicOff() const noexcept;
+ TStringBuf UnderlineOn() const noexcept;
+ TStringBuf UnderlineOff() const noexcept;
+
+ TStringBuf ForeDefault() const noexcept;
+ TStringBuf ForeBlack() const noexcept;
+ TStringBuf ForeRed() const noexcept;
+ TStringBuf ForeGreen() const noexcept;
+ TStringBuf ForeYellow() const noexcept;
+ TStringBuf ForeBlue() const noexcept;
+ TStringBuf ForeMagenta() const noexcept;
+ TStringBuf ForeCyan() const noexcept;
+ TStringBuf ForeWhite() const noexcept;
+
+ TStringBuf BackDefault() const noexcept;
+ TStringBuf BackBlack() const noexcept;
+ TStringBuf BackRed() const noexcept;
+ TStringBuf BackGreen() const noexcept;
+ TStringBuf BackYellow() const noexcept;
+ TStringBuf BackBlue() const noexcept;
+ TStringBuf BackMagenta() const noexcept;
+ TStringBuf BackCyan() const noexcept;
+ TStringBuf BackWhite() const noexcept;
+
+ TStringBuf Default() const noexcept;
+ TStringBuf Black() const noexcept;
+ TStringBuf Red() const noexcept;
+ TStringBuf Green() const noexcept;
+ TStringBuf Yellow() const noexcept;
+ TStringBuf Blue() const noexcept;
+ TStringBuf Magenta() const noexcept;
+ TStringBuf Cyan() const noexcept;
+ TStringBuf White() const noexcept;
+
+ TStringBuf LightDefault() const noexcept;
+ TStringBuf LightBlack() const noexcept;
+ TStringBuf LightRed() const noexcept;
+ TStringBuf LightGreen() const noexcept;
+ TStringBuf LightYellow() const noexcept;
+ TStringBuf LightBlue() const noexcept;
+ TStringBuf LightMagenta() const noexcept;
+ TStringBuf LightCyan() const noexcept;
+ TStringBuf LightWhite() const noexcept;
+
+ TStringBuf DarkDefault() const noexcept;
+ TStringBuf DarkBlack() const noexcept;
+ TStringBuf DarkRed() const noexcept;
+ TStringBuf DarkGreen() const noexcept;
+ TStringBuf DarkYellow() const noexcept;
+ TStringBuf DarkBlue() const noexcept;
+ TStringBuf DarkMagenta() const noexcept;
+ TStringBuf DarkCyan() const noexcept;
+ TStringBuf DarkWhite() const noexcept;
+
+ /// Compatibility; prefer using methods without `Color` suffix in their names.
+ /// Note: these behave differently from their un-suffixed counterparts.
+ /// While functions declared above will reset colors completely, these will only reset foreground color and
+ /// style, without changing the background color and underline/italic settings. Also, names of these functions
+ /// don't conform with standard, e.g. `YellowColor` actually emits the `lite yellow` escape code.
+ TStringBuf OldColor() const noexcept;
+ TStringBuf BoldColor() const noexcept;
+ TStringBuf BlackColor() const noexcept;
+ TStringBuf BlueColor() const noexcept;
+ TStringBuf GreenColor() const noexcept;
+ TStringBuf CyanColor() const noexcept;
+ TStringBuf RedColor() const noexcept;
+ TStringBuf PurpleColor() const noexcept;
+ TStringBuf BrownColor() const noexcept;
+ TStringBuf LightGrayColor() const noexcept;
+ TStringBuf DarkGrayColor() const noexcept;
+ TStringBuf LightBlueColor() const noexcept;
+ TStringBuf LightGreenColor() const noexcept;
+ TStringBuf LightCyanColor() const noexcept;
+ TStringBuf LightRedColor() const noexcept;
+ TStringBuf LightPurpleColor() const noexcept;
+ TStringBuf YellowColor() const noexcept;
+ TStringBuf WhiteColor() const noexcept;
+
inline bool IsTTY() const noexcept {
return IsTTY_;
}
@@ -212,17 +212,17 @@ namespace NColorizer {
bool IsTTY_;
};
- /// Singletone `TColors` instances for stderr/stdout.
+ /// Singletone `TColors` instances for stderr/stdout.
TColors& StdErr();
TColors& StdOut();
- /// Choose `TColors` depending on output stream. If passed stream is stderr/stdout, return a corresponding
- /// singletone. Otherwise, return a disabled singletone (which you can, but should *not* enable).
+ /// Choose `TColors` depending on output stream. If passed stream is stderr/stdout, return a corresponding
+ /// singletone. Otherwise, return a disabled singletone (which you can, but should *not* enable).
TColors& AutoColors(IOutputStream& os);
-
- /// Calculate total length of all ANSI escape codes in the text.
- size_t TotalAnsiEscapeCodeLen(TStringBuf text);
+
+ /// Calculate total length of all ANSI escape codes in the text.
+ size_t TotalAnsiEscapeCodeLen(TStringBuf text);
}
-
-TStringBuf ToStringBuf(NColorizer::EAnsiCode x);
-TString ToString(NColorizer::EAnsiCode x);
+
+TStringBuf ToStringBuf(NColorizer::EAnsiCode x);
+TString ToString(NColorizer::EAnsiCode x);