stdlib_ansi#
Introduction#
Support terminal escape sequences to produce styled and colored terminal output.
Derived types provided#
ansi_code type#
The ansi_code type represent an ANSI escape sequence with a style, foreground
color and background color attribute. By default the instances of this type are
empty and represent no escape sequence.
Status#
Experimental
Example#
program example_ansi_color
use stdlib_ansi, only : fg_color_blue, style_bold, style_reset, ansi_code, &
& operator(//), operator(+)
implicit none
type(ansi_code) :: highlight, reset
print '(a)', highlight // "Dull text message" // reset
highlight = fg_color_blue + style_bold
reset = style_reset
print '(a)', highlight // "Colorful text message" // reset
end program example_ansi_color
Constants provided#
style_reset#
Style enumerator representing a reset escape code.
style_bold#
Style enumerator representing a bold escape code.
style_dim#
Style enumerator representing a dim escape code.
style_italic#
Style enumerator representing an italic escape code.
style_underline#
Style enumerator representing an underline escape code.
style_blink#
Style enumerator representing a blink escape code.
style_blink_fast#
Style enumerator representing a (fast) blink escape code.
style_reverse#
Style enumerator representing a reverse escape code.
style_strikethrough#
Style enumerator representing a strike-through escape code.
fg_color_black#
Foreground color enumerator representing a foreground black color escape code.
fg_color_red#
Foreground color enumerator representing a foreground red color escape code.
fg_color_green#
Foreground color enumerator representing a foreground green color escape code.
fg_color_yellow#
Foreground color enumerator representing a foreground yellow color escape code.
fg_color_blue#
Foreground color enumerator representing a foreground blue color escape code.
fg_color_magenta#
Foreground color enumerator representing a foreground magenta color escape code.
fg_color_cyan#
Foreground color enumerator representing a foreground cyan color escape code.
fg_color_white#
Foreground color enumerator representing a foreground white color escape code.
fg_color_default#
Foreground color enumerator representing a foreground default color escape code.
bg_color_black#
Background color enumerator representing a background black color escape code.
bg_color_red#
Background color enumerator representing a background red color escape code.
bg_color_green#
Background color enumerator representing a background green color escape code.
bg_color_yellow#
Background color enumerator representing a background yellow color escape code.
bg_color_blue#
Background color enumerator representing a background blue color escape code.
bg_color_magenta#
Background color enumerator representing a background magenta color escape code.
bg_color_cyan#
Background color enumerator representing a background cyan color escape code.
bg_color_white#
Background color enumerator representing a background white color escape code.
bg_color_default#
Background color enumerator representing a background default color escape code.
Procedures and methods provided#
to_string#
Generic interface to turn a style, foreground or background enumerator into an actual escape code string for printout.
Syntax#
string = to_string (code)
Class#
Pure function.
Argument#
code: Style, foreground or background code of ansi_code type,
this argument is intent(in).
Result value#
The result is a default character string.
Status#
Experimental
Example#
program example_ansi_to_string
use stdlib_ansi, only : fg_color_green, style_reset, to_string
implicit none
print '(a)', to_string(fg_color_green) // "Colorized text message" // to_string(style_reset)
end program example_ansi_to_string
operator(+)#
Add two escape sequences, attributes in the right value override the left value ones.
Syntax#
code = lval + rval
Class#
Pure function.
Argument#
lval: Style, foreground or background code of ansi_code type,
this argument is intent(in).
rval: Style, foreground or background code of ansi_code type,
this argument is intent(in).
Result value#
The result is a style, foreground or background code of ansi_code type.
Status#
Experimental
Example#
program example_ansi_combine
use stdlib_ansi, only : fg_color_red, style_bold, ansi_code, operator(+), to_string
implicit none
type(ansi_code) :: bold_red
bold_red = fg_color_red + style_bold
print '(a)', to_string(bold_red)
end program example_ansi_combine
operator(//)#
Concatenate an escape code with a string and turn it into an actual escape sequence
Syntax#
str = lval // rval
Class#
Pure function.
Argument#
lval: Style, foreground or background code of ansi_code type or a character string,
this argument is intent(in).
rval: Style, foreground or background code of ansi_code type or a character string,
this argument is intent(in).
Result value#
The result is a character string with the escape sequence prepended or appended.
Status#
Experimental
Example#
program example_ansi_concat
use stdlib_ansi, only : fg_color_red, style_reset, operator(//)
implicit none
print '(a)', fg_color_red // "Colorized text message" // style_reset
end program example_ansi_concat