主题
在主题中进行样式设置是通过使用AttributedString从JLine实现的。
不幸的是,在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
如果规格是一个数字或用分号分隔的多个数字,则格式是ANSI ASCII代码的一部分。
31
31;1
| JLine特殊映射格式,用于解决以点开头的spec将不能被使用,因为我们还没有将这些映射到Spring Shell样式名称中。 |