项目介绍:infinite
infinite
是一个帮助开发者使用 Go 语言创建交互式命令行应用程序的项目。它提供了一系列简便的方法,让命令行工具能够具备丰富的用户交互功能。
功能特点
infinite
提供了多种实用的功能,适用于构建不同类型的交互式界面:
- 多项/单项选择:实现用户可以通过命令行选择多个或单个选项。
- 进度条组:用来在命令行中展示多个任务的进度状况。
- 旋转加载器:显示任务正在进行中的视觉效果。
- 确认(输入/选择):用户需要确认输入的功能模块。
- 输入功能:方便用户通过命令行录入数据。
安装方法
若要将infinite
集成到自己的 Go 项目中,只需使用以下命令进行安装:
go get github.com/fzdwx/infinite@main
示例代码
以下是infinite
在实际项目中使用的简单示例:
func main() {
input := components.NewInput()
input.Prompt = "Filtering: "
input.PromptStyle = style.New().Bold().Italic().Fg(color.LightBlue)
keymap := components.DefaultMultiKeyMap()
keymap.Choice = key.NewBinding(
key.WithKeys(tea.KeySpace.String()),
)
_, _ = inf.NewMultiSelect([]string{
"a", "b", "c",
"d", "e",
"f",
"g",
"h",
},
multiselect.WithKeyMap(keymap),
multiselect.WithHintSymbol("x"),
multiselect.WithUnHintSymbol("√"),
multiselect.WithPageSize(3),
multiselect.WithFilterInput(input),
).
Display("select your items!")
}
这个示例展示了如何创建一个带过滤功能的多项选择界面,用户可以通过空格键选择项目,并在显示器上提示选择的状态。
更多示例
更多示例和详细用法可以在infinite
的 GitHub 主页中找到,开发者可以参考这些示例以更好地将其应用于自己的项目中。
授权协议
infinite
使用 MIT 许可证,这意味着它是开源的,开发者可以自由地使用、修改和分发该软件。