Package kongplete lets you generate shell completions for your command-line programs using github.com/alecthomas/kong and github.com/posener/complete.
// This example is adapted from the shell example in github.com/alecthomas/kong package main import ( "fmt" "os" "github.com/alecthomas/kong" "github.com/posener/complete" "github.com/willabides/kongplete" ) var shellCli struct { Rm struct { User string `help:"Run as user." short:"u" default:"default"` Force bool `help:"Force removal." short:"f"` Recursive bool `help:"Recursively remove files." short:"r"` Hidden string `help:"A hidden flag" hidden:""` Paths []string `arg:"" help:"Paths to remove." type:"path" name:"path" predictor:"file"` } `cmd:"" help:"Remove files."` Ls struct { Paths []string `arg:"" optional:"" help:"Paths to list." type:"path" predictor:"file"` } `cmd:"" help:"List paths."` Hidden struct{} `cmd:"" help:"A hidden command" hidden:""` Debug bool `help:"Debug mode."` InstallCompletions kongplete.InstallCompletions `cmd:"" help:"install shell completions"` } func main() { // Create a kong parser as usual, but don't run Parse quite yet. parser := kong.Must(&shellCli, kong.Name("shell"), kong.Description("A shell-like example app."), kong.UsageOnError(), ) // Run kongplete.Complete to handle completion requests kongplete.Complete(parser, kongplete.WithPredictor("file", complete.PredictFiles("*")), ) // Proceed as normal after kongplete.Complete. ctx, err := parser.Parse(os.Args[1:]) parser.FatalIfErrorf(err) switch ctx.Command() { case "rm <path>": fmt.Println(shellCli.Rm.Paths, shellCli.Rm.Force, shellCli.Rm.Recursive) case "ls", "hidden": } }
This section is empty.
This section is empty.
func Command ΒΆCommand returns a completion Command for a kong parser
Complete runs completion for a kong parser
type InstallCompletions struct { Uninstall bool }
InstallCompletions is a kong command for installing or uninstalling shell completions
BeforeApply installs completion into the users shell.
type Option func(*options)
Option is a configuration option for running Complete
func WithExitFunc(exitFunc func(code int)) Option
WithExitFunc the exit command that is run after completions
WithPredictor use the named predictor
WithPredictors use these predictors
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4