技术介绍
本附录包含了开发人员和其他希望了解 Spring Shell 内部工作原理及其设计决策的相关信息。
章节摘要
📄️ 命令注册
定义命令注册是引入命令及其选项和参数结构的第一步。这与后续发生的事情(例如解析命令行输入和运行实际目标代码)是松散耦合的。本质上,它是展示给用户的命令 API 的定义。
📄️ 命令解析器
在执行命令之前,我们需要解析命令和用户可能提供的任何选项。解析过程位于命令注册和命令执行之间。
📄️ 命令执行
当命令解析完成并且命令注册已解决时,命令执行就会进行实际的代码运行。
📄️ Shell 上下文
ShellContext 接口提供了对当前正在运行的 shell 上下文的访问。你可以使用它来访问通用的 shell 选项。
📄️ 命令上下文
CommandContext 接口提供对当前运行上下文的访问。您可以使用它来获取选项:
📄️ 命令目录
📄️ 主题设置
在主题中,样式通过使用 JLine 的 AttributedString 来提供。不幸的是,JLine 中的样式设置大部分没有文档记录,但我们尝试在这里介绍它的一些特性。
📄️ 搜索算法
SearchMatch 是一个用于将文本与模式匹配的接口。匹配结果以 SearchMatchResult 形式返回。匹配结果包含关于匹配位置和整体匹配得分的信息。