终端颜色

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_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)

纯函数。

参数

codeansi_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

纯函数。

参数

lvalansi_code 类型的样式、前景色或背景色代码,此参数为intent(in)rvalansi_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

纯函数。

参数

lvalansi_code 类型的样式、前景色或背景色代码或字符字符串,此参数为intent(in)rvalansi_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