主题

主题中的样式由 JLine 中的 AttributedString 提供。不幸的是,JLine 中的样式大多没有文档记录,但我们尝试在此介绍其一些功能。

JLine 中,样式规范是一个具有特殊格式的字符串。如果用逗号分隔,则可以多次给出规范。规范将定义前景色、背景色或其模式的颜色。特殊格式 <spec>:=<spec> 允许在后者规范中定义默认值,如果前者由于某种原因无效。

如果规范包含冒号,则其前一部分表示前景色或背景色,可能的值为 foregroundfgfbackgroundbgbforeground-rgbfg-rgbf-rgbbackground-rgbbg-rgbb-rgb。如果没有 rbg,则颜色值为允许的颜色名称,如 blackredgreenyellowbluemagentacyanwhite。颜色具有其简短格式 krgybmcw。如果颜色以 !bright- 为前缀,则会自动应用亮模式。以 ~ 为前缀将从 JLine 内部 bsd 颜色表中解析。

如果期望 rgb 格式并且以 x# 为前缀,则使用正常的十六进制格式。

fg-red
fg-r
fg-rgb:red
fg-rgb:xff3333
fg-rgb:#ff3333

如果规范包含特殊名称 defaultboldfaintitalicunderlineblinkinverseinverse-neginversenegconcealcrossed-outcrossedouthidden,则样式会相应地更改为现有颜色。

bold
bold,fg:red

如果规范是数字或用分号分隔的数字,则格式是 ansi ascii 代码的纯部分。

31
31;1
以点开头的规范将解析的 JLine 特殊映射格式不能使用,因为我们尚未将其映射到 Spring Shell 样式名称中。