テーマ

テーマのスタイリングは、JLineAttributedString を使用して提供されます。残念ながら、JLine でのスタイル設定はほとんどドキュメント化されていませんが、ここではその機能のいくつかを見ていきます。

JLine では、スタイル仕様は特別な形式を持つ文字列です。カンマで区切れば、spec を複数指定できます。仕様は、前景、背景、そのモードの色を定義します。特別な形式 <spec>:=<spec> では、何らかの理由で前者が無効な場合に、後者の仕様内でデフォルトを定義できます。

spec にコロンが含まれる場合、その前の部分はフォアグラウンドまたはバックグラウンドのいずれかを示し、可能な値は foregroundfgfbackgroundbgbforeground-rgbfg-rgbf-rgbbackground-rgbbg-rgb または b-rgb です。rbg がない場合、色の値は、許容される色 blackredgreenyellowbluemagentacyan または white からの名前です。色には、それぞれ短い形式 krgybmcw があります。色の前に ! または bright- が付いている場合、明るいモードが自動的に適用されます。~ を前に付けると、JLine の内部 bsd カラーテーブルから解決されます。

rgb 形式が予期され、x または # のいずれかのプレフィックスが付いている場合は、通常の 16 進数形式が使用されます。

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

spec に特別な名前 defaultboldfaintitalicunderlineblinkinverseinverse-neginversenegconcealcrossed-outcrossedout または hidden が含まれている場合、スタイルはそれに応じて既存の色に変更されます。

bold
bold,fg:red

spec が数字またはセミコロンで区切られた数字の場合、format は ansi ASCII コードのプレーンな部分です。

31
31;1
ドットで始まる仕様を解決する JLine の特別なマッピング形式は、まだ Spring Shell スタイル名にマッピングされていないため使用できません。