主题设置
在主题中,样式是通过使用 JLine 的 AttributedString 提供的。不幸的是,JLine 中的样式设置大多没有文档说明,但我们会在这里介绍它的一些特性。
在 JLine 中,样式规范是一个具有特殊格式的字符串。如果用逗号分隔,可以多次给出规范。规范将定义前景色、背景色或其模式。特殊格式 <spec>:=<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
如果 spec 包含特殊名称 default、bold、faint、italic、underline、blink、inverse、inverse-neg、inverseneg、conceal、crossed-out、crossedout 或 hidden,则会根据现有的颜色相应地更改样式。
bold
bold,fg:red
如果 spec 是一个数字或用分号分隔的多个数字,那么 format 就是 ANSI ASCII 码的纯部分。
31
31;1
JLine 特殊的映射格式(以点开头的规范)不能被使用,因为我们还没有将这些映射到 Spring Shell 的样式名称中。