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 样式名称中。 |