console :: TermCharFormat :: defaultinit
# ANSI/VT100 code to change character look (SGR).
#
# By default, resets everything to the terminal’s defaults.
#
# Note:
#
# The escape sequence inserted at the end of the string by terminal-related
# methods of `String` resets all character attributes to the terminal’s
# defaults. So, when combining format `a` and `b`, something like
# `("foo".a + " bar").b` will not work as expected, but `"foo".a.b + " bar".b`
# will. You may also use `TermCharFormat` (this class).
#
# Usage example:
#
# print "{(new TermCharFormat).yellow_fg.bold}a{(new TermCharFormat).yellow_fg}b{new TermCharFormat}"
class TermCharFormat
super TermEscape
private var attributes: Array[String] = new Array[String]
# Copies the attributes from the specified format.
init from(format: TermCharFormat) do
attributes.add_all(format.attributes)
end
redef fun to_s do return "{csi}{attributes.join(";")}m"
# Apply the specified SGR and return `self`.
private fun apply(sgr: String): TermCharFormat do
attributes.add(sgr)
return self
end
# Apply normal (default) format and return `self`.
fun default: TermCharFormat do return apply("0")
# Apply bold weight and return `self`.
fun bold: TermCharFormat do return apply("1")
# Apply underlining and return `self`.
fun underline: TermCharFormat do return apply("4")
# Apply blinking or bold weight and return `self`.
fun blink: TermCharFormat do return apply("5")
# Apply reverse video and return `self`.
fun inverse: TermCharFormat do return apply("7")
# Apply normal weight and return `self`.
fun normal_weight: TermCharFormat do return apply("22")
# Add the attribute that disable underlining and return `self`.
fun not_underlined: TermCharFormat do return apply("24")
# Add the attribute that disable blinking and return `self`.
fun steady: TermCharFormat do return apply("25")
# Add the attribute that disable reverse video and return `self`.
fun positive: TermCharFormat do return apply("27")
# Apply a black foreground and return `self`.
fun black_fg: TermCharFormat do return apply("30")
# Apply a red foreground and return `self`.
fun red_fg: TermCharFormat do return apply("31")
# Apply a green foreground and return `self`.
fun green_fg: TermCharFormat do return apply("32")
# Apply a yellow foreground and return `self`.
fun yellow_fg: TermCharFormat do return apply("33")
# Apply a blue foreground and return `self`.
fun blue_fg: TermCharFormat do return apply("34")
# Apply a magenta foreground and return `self`.
fun magenta_fg: TermCharFormat do return apply("35")
# Apply a cyan foreground and return `self`.
fun cyan_fg: TermCharFormat do return apply("36")
# Apply a white foreground and return `self`.
fun white_fg: TermCharFormat do return apply("37")
# Apply the default foreground and return `self`.
fun default_fg: TermCharFormat do return apply("39")
# Apply a black background and return `self`.
fun black_bg: TermCharFormat do return apply("40")
# Apply a red background and return `self`.
fun red_bg: TermCharFormat do return apply("41")
# Apply a green background and return `self`.
fun green_bg: TermCharFormat do return apply("42")
# Apply a yellow background and return `self`.
fun yellow_bg: TermCharFormat do return apply("43")
# Apply a blue background and return `self`.
fun blue_bg: TermCharFormat do return apply("44")
# Apply a magenta background and return `self`.
fun magenta_bg: TermCharFormat do return apply("45")
# Apply a cyan background and return `self`.
fun cyan_bg: TermCharFormat do return apply("46")
# Apply a white background and return `self`.
fun white_bg: TermCharFormat do return apply("47")
# Apply the default background and return `self`.
fun default_bg: TermCharFormat do return apply("49")
end
lib/console/console.nit:171,1--284,3