yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
ansi_style.h
Go to the documentation of this file.
1#ifndef YAZE_CLI_UTIL_ANSI_STYLE_H_
2#define YAZE_CLI_UTIL_ANSI_STYLE_H_
3
4#include <cstdio>
5
6#include "absl/strings/string_view.h"
7
8namespace yaze::cli::util {
9
10// Semantic ANSI styles for z3ed output. Every accessor returns an empty string
11// when color is disabled, so callers can stream styles unconditionally.
12class AnsiStyle {
13 public:
14 constexpr explicit AnsiStyle(bool enabled) : enabled_(enabled) {}
15
16 // Color is enabled only for an interactive terminal, and never when
17 // NO_COLOR is set or TERM=dumb.
18 static AnsiStyle ForStream(std::FILE* stream);
19
20 constexpr bool enabled() const { return enabled_; }
21
22 constexpr absl::string_view Heading() const { return Code("\033[1;36m"); }
23 constexpr absl::string_view Highlight() const { return Code("\033[1;33m"); }
24 constexpr absl::string_view Emphasis() const { return Code("\033[1;37m"); }
25 constexpr absl::string_view Muted() const { return Code("\033[0;37m"); }
26 constexpr absl::string_view Success() const { return Code("\033[1;32m"); }
27 constexpr absl::string_view Failure() const { return Code("\033[1;31m"); }
28 constexpr absl::string_view Reset() const { return Code("\033[0m"); }
29
30 private:
31 constexpr absl::string_view Code(absl::string_view code) const {
32 return enabled_ ? code : absl::string_view();
33 }
34
36};
37
38} // namespace yaze::cli::util
39
40#endif // YAZE_CLI_UTIL_ANSI_STYLE_H_
static AnsiStyle ForStream(std::FILE *stream)
Definition ansi_style.cc:25
constexpr absl::string_view Emphasis() const
Definition ansi_style.h:24
constexpr absl::string_view Heading() const
Definition ansi_style.h:22
constexpr absl::string_view Failure() const
Definition ansi_style.h:27
constexpr absl::string_view Muted() const
Definition ansi_style.h:25
constexpr absl::string_view Highlight() const
Definition ansi_style.h:23
constexpr bool enabled() const
Definition ansi_style.h:20
constexpr absl::string_view Success() const
Definition ansi_style.h:26
constexpr AnsiStyle(bool enabled)
Definition ansi_style.h:14
constexpr absl::string_view Reset() const
Definition ansi_style.h:28
constexpr absl::string_view Code(absl::string_view code) const
Definition ansi_style.h:31