Theming
主题中的样式由 JLine
中的 AttributedString 的用法提供。遗憾的是,JLine
中的样式几乎没有文档说明,不过我们尝试在这里研究一下其部分功能。
在 JLine
中,样式规范是一个具有特殊格式的字符串。如果用逗号分隔,规范可以给出多次。规范将为前景色、背景色或其模式定义颜色。如果由于某种原因前者无效,特殊格式 <spec>:=<spec>
允许在后一个规范中定义默认值。
如果规范包含冒号,则其前部分表示前景色或背景色,可能的值包括 foreground
、fg
、f
、background
、bg
、b
、foreground-rgb
、fg-rgb
、f-rgb
、background-rgb
、bg-rgb
或 b-rgb
。如果没有 rgb,颜色值则从允许的颜色 black
、red
、green
、yellow
、blue
、magenta
、cyan
或 white
中进行命名。颜色有简写格式 k
、r
、g
、y
、b
、m
、c
和 w
。如果颜色前缀为 !
或 bright-
,则自动应用亮模式。使用 ~
作为前缀将从 JLine 的内部 bsd 颜色表中解析。
如果预计 rgb 格式且前缀为 x
或 #
,则使用正常的十六进制格式。
fg-red
fg-r
fg-rgb:red
fg-rgb:xff3333
fg-rgb:#ff3333
如果规范包含特殊名称 default
、bold
、faint
、italic
、underline
、blink
、inverse
、inverse-neg
、inverseneg
、conceal
、crossed-out
、crossedout
或 hidden
,则样式会相应地更改为现有颜色。
bold
bold,fg:red
如果规范是数字或以分号分隔的数字,则格式是 ansiascii 代码中的普通部分。
31
31;1
JLine 特殊映射格式无法解析以点开头的规范,因为我们尚未将其映射到 Spring Shell 样式名称中。 |