1 个不稳定版本

0.1.0 2023年8月8日

#9 in #sgr


easy-sgr 中使用

MIT 协议

38KB
749 行代码(不包括注释)

easy-sgr-macros

easy-sgr crate提供的proc-macro实现

语法

此crate的语法几乎与fmt模块的语法相同,增加了一个功能:添加了SGR 关键字

这些关键字在编译时会被转换为SGR代码,使用方法类似于在fmt crate中将变量格式化为字符串字面量,您可以使用花括号内的方括号来指定它们:{[...]}来指定。每个关键字之间应该用空格分隔。

示例

use easy_sgr::println;

println!("{[bold green on-red]}This is colorful");
println!("{[!bold default on-default]}This is not");

更多请参考rust文档

关键字

简单

有一组“简单”关键字,由一个单词组成

  • 样式
    • 重置|加粗|半透明|斜体|下划线|闪烁|反色|隐藏|删除线
  • 撤销样式
    • !加粗| !半透明| !斜体| !下划线| !闪烁| !反色| !隐藏| !删除线
  • 前景色
    • 黑色|红色|绿色|黄色|蓝色|洋红色|青色|白色|默认
  • 背景色
    • -黑色|-红色|-绿色|-黄色|-蓝色|-洋红色|-青色|-白色|-默认
  • 重置
    • {[]}

reset与其他关键字略有不同,因为它为空。

复杂

更复杂的语法完全保留给颜色代码。

颜色可以是以下之一,可选地以'on-'前缀表示背景色

  • u8 -> (38|48);5;u8
  • u8,u8,u8 -> (38|48);2;u8;u8;u8

并且,通过在前面加上#来表示十六进制,但没有任何逗号

  • #u8 -> (38|48);5;u8
  • #u8u8u8 -> (38|48);2;u8;u8;u8

因此,一些示例颜色可以是

  • on-15 -> 48;5;15
  • 15,115,215 -> 38;2;15;115;215
  • #0f -> 38;5;15
  • on-#0f73d7 -> 48;2;15;115;215

待办事项

  • 自定义代码
  • 别名系统
  • 构建 build-stream crate(也许)
  • 创建 col_err(也许)

无运行时依赖

功能