stdlib_ansi 模块

终端颜色和样式转义序列



变量

类型 可见性 属性 名称 初始值
type(ansi_code), public, parameter :: bg_color_black = ansi_code(bg=0)

黑色背景色的标识符

type(ansi_code), public, parameter :: bg_color_blue = ansi_code(bg=4)

蓝色背景色的标识符

type(ansi_code), public, parameter :: bg_color_cyan = ansi_code(bg=6)

青色背景色的标识符

type(ansi_code), public, parameter :: bg_color_default = ansi_code(bg=9)

默认背景色的标识符

type(ansi_code), public, parameter :: bg_color_green = ansi_code(bg=2)

绿色背景色的标识符

type(ansi_code), public, parameter :: bg_color_magenta = ansi_code(bg=5)

洋红色背景色的标识符

type(ansi_code), public, parameter :: bg_color_red = ansi_code(bg=1)

红色背景色的标识符

type(ansi_code), public, parameter :: bg_color_white = ansi_code(bg=7)

白色背景色的标识符

type(ansi_code), public, parameter :: bg_color_yellow = ansi_code(bg=3)

黄色背景色的标识符

type(ansi_code), public, parameter :: fg_color_black = ansi_code(fg=0)

黑色前景色标识符

type(ansi_code), public, parameter :: fg_color_blue = ansi_code(fg=4)

蓝色前景色标识符

type(ansi_code), public, parameter :: fg_color_cyan = ansi_code(fg=6)

青色前景色标识符

type(ansi_code), public, parameter :: fg_color_default = ansi_code(fg=9)

默认前景色标识符

type(ansi_code), public, parameter :: fg_color_green = ansi_code(fg=2)

绿色前景色标识符

type(ansi_code), public, parameter :: fg_color_magenta = ansi_code(fg=5)

洋红色前景色标识符

type(ansi_code), public, parameter :: fg_color_red = ansi_code(fg=1)

红色前景色标识符

type(ansi_code), public, parameter :: fg_color_white = ansi_code(fg=7)

白色前景色标识符

type(ansi_code), public, parameter :: fg_color_yellow = ansi_code(fg=3)

黄色前景色标识符

type(ansi_code), public, parameter :: style_blink = ansi_code(style=5)

闪烁样式的标识符

type(ansi_code), public, parameter :: style_blink_fast = ansi_code(style=6)

(快速)闪烁样式的标识符

type(ansi_code), public, parameter :: style_bold = ansi_code(style=1)

粗体样式的标识符

type(ansi_code), public, parameter :: style_dim = ansi_code(style=2)

暗淡样式的标识符

type(ansi_code), public, parameter :: style_hidden = ansi_code(style=8)

隐藏样式的标识符

type(ansi_code), public, parameter :: style_italic = ansi_code(style=3)

斜体样式的标识符

type(ansi_code), public, parameter :: style_reset = ansi_code(style=0)

重置样式的标识符

type(ansi_code), public, parameter :: style_reverse = ansi_code(style=7)

反转样式的标识符

type(ansi_code), public, parameter :: style_strikethrough = ansi_code(style=9)

删除线样式的标识符

type(ansi_code), public, parameter :: style_underline = ansi_code(style=4)

下划线样式的标识符


接口

public interface operator(+)

  • private pure module function add(lval, rval) result(code)

    将两个转义序列相加,右侧值的属性覆盖左侧值的属性。

    参数

    类型 意图可选 属性 名称
    type(ansi_code), intent(in) :: lval

    第一个转义码

    type(ansi_code), intent(in) :: rval

    第二个转义码

    返回值 type(ansi_code)

    组合后的转义码

public interface operator(//)

  • private pure module function concat_left(lval, code) result(str)

    将转义码与字符串连接起来,并将其转换为实际的转义序列

    参数

    类型 意图可选 属性 名称
    character(len=*), intent(in) :: lval

    要添加转义码的字符串

    type(ansi_code), intent(in) :: code

    转义序列

    返回值 character(len=:), allocatable

    连接后的字符串

  • private pure module function concat_left_str(lval, code) result(str)

    将转义码与字符串连接起来,并将其转换为实际的转义序列

    参数

    类型 意图可选 属性 名称
    type(string_type), intent(in) :: lval

    要添加转义码的字符串

    type(ansi_code), intent(in) :: code

    转义序列

    返回值 type(string_type)

    连接后的字符串

  • private pure module function concat_right(code, rval) result(str)

    将转义码与字符串连接起来,并将其转换为实际的转义序列

    参数

    类型 意图可选 属性 名称
    type(ansi_code), intent(in) :: code

    转义序列

    character(len=*), intent(in) :: rval

    要添加转义码的字符串

    返回值 character(len=:), allocatable

    连接后的字符串

  • private pure module function concat_right_str(code, rval) result(str)

    将转义码与字符串连接起来,并将其转换为实际的转义序列

    参数

    类型 意图可选 属性 名称
    type(ansi_code), intent(in) :: code

    转义序列

    type(string_type), intent(in) :: rval

    要添加转义码的字符串

    返回值 type(string_type)

    连接后的字符串

public interface to_string

  • private pure module function to_string_ansi_code(code) result(str)

    将颜色代码转换为实际的 ANSI 转义序列

    参数

    类型 意图可选 属性 名称
    type(ansi_code), intent(in) :: code

    要使用的颜色代码

    返回值 character(len=:), allocatable

    表示颜色代码的 ANSI 转义序列


派生类型

type, public ::  ansi_code

终端转义码的容器