stdlib_ansi
模块支持终端转义序列以生成样式化和着色的终端输出。
ansi_code
类型ansi_code
类型表示一个带有样式、前景色和背景色属性的 ANSI 转义序列。默认情况下,此类型的实例为空,表示没有转义序列。
实验性
program demo_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 demo_color
style_reset
表示重置转义代码的样式枚举。
style_bold
表示粗体转义代码的样式枚举。
style_dim
表示暗淡转义代码的样式枚举。
style_italic
表示斜体转义代码的样式枚举。
style_underline
表示下划线转义代码的样式枚举。
style_blink
表示闪烁转义代码的样式枚举。
style_blink_fast
表示(快速)闪烁转义代码的样式枚举。
style_reverse
表示反转转义代码的样式枚举。
style_hidden
表示隐藏转义代码的样式枚举。
style_strikethrough
表示删除线转义代码的样式枚举。
fg_color_black
表示前景色黑色转义代码的前景色颜色枚举。
fg_color_red
表示前景色红色转义代码的前景色颜色枚举。
fg_color_green
表示前景色绿色转义代码的前景色颜色枚举。
fg_color_yellow
表示前景色黄色转义代码的前景色颜色枚举。
fg_color_blue
表示前景色蓝色转义代码的前景色颜色枚举。
fg_color_magenta
表示前景色洋红色转义代码的前景色颜色枚举。
fg_color_cyan
表示前景色青色转义代码的前景色颜色枚举。
fg_color_white
表示前景色白色转义代码的前景色颜色枚举。
fg_color_default
表示前景色默认颜色转义代码的前景色颜色枚举。
bg_color_black
表示背景色黑色转义代码的背景色颜色枚举。
bg_color_red
表示背景色红色转义代码的背景色颜色枚举。
bg_color_green
表示背景色绿色转义代码的背景色颜色枚举。
bg_color_yellow
表示背景色黄色转义代码的背景色颜色枚举。
bg_color_blue
表示背景色蓝色转义代码的背景色颜色枚举。
bg_color_magenta
表示背景色洋红色转义代码的背景色颜色枚举。
bg_color_cyan
表示背景色青色转义代码的背景色颜色枚举。
bg_color_white
表示背景色白色转义代码的背景色颜色枚举。
bg_color_default
表示背景色默认颜色转义代码的背景色颜色枚举。
to_string
通用接口,用于将样式、前景色或背景色枚举转换为用于打印的实际转义代码字符串。
string =
to_string (code)
纯函数。
code
:ansi_code
类型的样式、前景色或背景色代码,此参数为intent(in)
。
结果是默认字符字符串。
实验性
program demo_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 demo_string
运算符(+)
添加两个转义序列,右侧值中的属性覆盖左侧值中的属性。
code = lval + rval
纯函数。
lval
:ansi_code
类型的样式、前景色或背景色代码,此参数为intent(in)
。rval
:ansi_code
类型的样式、前景色或背景色代码,此参数为intent(in)
。
结果是ansi_code
类型的样式、前景色或背景色代码。
实验性
program demo_combine
use stdlib_ansi, only : fg_color_red, style_bold, ansi_code
implicit none
type(ansi_code) :: bold_red
bold_red = fg_color_red + style_bold
end program demo_combine
运算符(//)
将转义代码与字符串连接起来,并将其转换为实际的转义序列
str = lval // rval
纯函数。
lval
:ansi_code
类型的样式、前景色或背景色代码或字符字符串,此参数为intent(in)
。rval
:ansi_code
类型的样式、前景色或背景色代码或字符字符串,此参数为intent(in)
。
结果是带有前缀或后缀转义序列的字符字符串。
实验性
program demo_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 demo_concat