用Golang开发的交互式命令行(终端)组件库,progress bar,select,confirm,spinner...

861 阅读1分钟

推荐项目

  • 项目地址:github.com/fzdwx/infin…

  • 类别:Go

  • 项目标题:用Golang开发的交互式命令行组件库。

  • 项目描述: 它提供了一些常用的交互式组件,比如说progress,progress group,mulit select,input text,confirm等.同时也提供了一些更基础的组件,方便用户进行组合使用。

  • 亮点: 易于使用,定制化能力强,线程安全。

  • 示例代码 这个 一个multi select的代码案例

package main

import (
	inf "github.com/fzdwx/infinite"
	"github.com/fzdwx/infinite/color"
	"github.com/fzdwx/infinite/components"
	"github.com/fzdwx/infinite/components/selection/multiselect"
	"github.com/fzdwx/infinite/style"
)

func main() {
	input := components.NewInput()
	input.Prompt = "Filtering: "
	input.PromptStyle = style.New().Bold().Italic().Fg(color.LightBlue)

	_, _ = inf.NewMultiSelect([]string{
		"Buy carrots",
		"Buy celery",
		"Buy kohlrabi",
		"Buy computer",
		"Buy something",
		"Buy car",
		"Buy subway",
	},
		multiselect.WithHintSymbol("x"),
		multiselect.WithUnHintSymbol("√"),
		multiselect.WithFilterInput(input),
	).Display("select your items!")
}
  • 截图:

multi select image

progress bar image

confirm image

  • 后续更新计划:
  1. 目前项目还属于刚起步,需要做的事情很多。
  2. 提供更多的组件。
  3. 提供更多的使用案例。
  4. 提供组合使用的案例。
  5. 增强定制化的能力...