主题
主题中的样式是通过使用 JLine 的 AttributedString 提供的。遗憾的是,JLine 中的样式大部分没有文档记录,但我们在这里尝试介绍一些它的功能。
在 JLine 中,样式规范是一个具有特殊格式的字符串。规范可以多次给出,用逗号分隔。一个规范可以定义前景色、背景色或其模式。特殊格式 <spec>:=<spec> 允许在后一个规范中定义一个默认值,如果前一个规范由于某种原因无效的话。
如果规范包含冒号,其前一部分表示前景色或背景色,可能的值包括 foreground、fg、f、background、bg、b、foreground-rgb、fg-rgb、f-rgb、background-rgb、bg-rgb 或 b-rgb。不带 rbg 时,颜色值是允许的颜色名称,如 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
如果规范是一个数字或用分号分隔的多个数字,格式是 ansi ascii 代码的普通部分。
31
31;1
| 以点开头的 JLine 特殊映射格式无法使用,因为我们尚未将其映射到 Spring Shell 的样式名称中。 |