Theming

当前终端实现中的功能非常丰富,通常可以呈现一些比纯文本更多的东西。例如,可以设置文本样式为 bold 或者使用不同的颜色。终端还可以从 unicode 表中显示各种字符(如表情符号),通常这些字符用于使 shell 输出更漂亮。

Spring Shell 通过其主题框架支持这些功能,该框架包含两个部分,首先,styling 可用于更改文本类型,其次,figures 可用于更改某些字符的显示方式。然后,将这两部分组合在一起作为 theme

有关 theming 内部机制的更多信息,请参见 Theming

默认主题名为`default`,但可以使用属性`spring.shell.theme.name`进行更改。其他内置主题名为`dump`,它不使用任何颜色样式且尽量不用任何特殊样式。

通过覆盖设置修改现有样式。

link:../../../../src/test/java/org/springframework/shell/docs/ThemingSnippets.java[role=include]

通过覆盖设置修改现有数字。

link:../../../../src/test/java/org/springframework/shell/docs/ThemingSnippets.java[role=include]

要创建一个新主题,创建一个 ThemeSettings,并提供你自己的 stylefigure 实现。

link:../../../../src/test/java/org/springframework/shell/docs/ThemingSnippets.java[role=include]

注册一个新的 Bean Theme,你可以在其中返回你的自定义 ThemeSettingstheme 名称。

link:../../../../src/test/java/org/springframework/shell/docs/ThemingSnippets.java[role=include]

你可以使用 ThemeResolver 来解析 styles,如果你想以编程方式创建 JLine 风格的字符串,或者 figures 如果你想对字符进行主题化处理以使其更美观。

link:../../../../src/test/java/org/springframework/shell/docs/ThemingSnippets.java[role=include]