主题

当前终端实现功能丰富,通常能显示 还有其他纯文本的东西。例如,文本可以被样式化为粗体或不同颜色。终端也常常能 显示来自Unicode表格中的各种字符,比如表情符号,通常为 用来让贝壳输出更漂亮。spring-doc.cadn.net.cn

Spring Shell通过其主题框架支持这些,包含两个部分。 首先,样式可以用来更改文本类型;其次,使用图形 用来自定义角色的展示方式。这两个部分随后被结合为一个主题spring-doc.cadn.net.cn

有关主题内部的更多细节,请参见主题。spring-doc.cadn.net.cn

默认主题命名默认值但可以通过以下属性进行更改spring.shell.theme.name.还有另一个内置主题,名为转 储它不使用任何颜色样式,也尽量不使用任何特殊人物。

您可以通过覆盖默认设置来修改现有的样式和手办:spring-doc.cadn.net.cn

static class MyStyleSettings extends StyleSettings {

	@Override
	public String highlight() {
		return super.highlight();
	}
}
static class MyFigureSettings extends FigureSettings {

	@Override
	public String error() {
		return super.error();
	}
}

你也可以创建一个新主题,通过创建一个主题设置并提供你自己的风格人物实现:spring-doc.cadn.net.cn

static class MyThemeSettings extends ThemeSettings {

	@Override
	public StyleSettings styles() {
		return new MyStyleSettings();
	}

	@Override
	public FigureSettings figures() {
		return new MyFigureSettings();
	}
}

注册新豆主题你可以归还你的习惯主题设置以及主题名称。spring-doc.cadn.net.cn

@Configuration
static class CustomThemeConfig {

	@Bean
	Theme myTheme() {
		return new Theme() {
			@Override
			public String getName() {
				return "mytheme";
			}

			@Override
			public ThemeSettings getSettings() {
				return new MyThemeSettings();
			}
		};
	}
}

你可以使用主题解析器如果你想创建样式,可以解析样式 如果你想,可以编程和图形,JLine 风格的字符串 主题角色更漂亮。spring-doc.cadn.net.cn

@Autowired
private ThemeResolver resolver;

void resolve() {
	String resolvedStyle = resolver.resolveStyleTag(StyleSettings.TAG_TITLE);
	// bold,fg:bright-white

	AttributedStyle style = resolver.resolveStyle(resolvedStyle);
	// jline attributed style from expression above

	String resolvedFigure = resolver.resolveFigureTag(FigureSettings.TAG_ERROR);
	// character i.e. U+2716 Heavy Multiplication X Emoji, cross
}