diff options
| author | Jeff Carr <[email protected]> | 2025-10-18 10:23:24 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-18 10:23:24 -0500 |
| commit | 317ee925ef78d5eac752232dd78bd24385141bf6 (patch) | |
| tree | 475ad026ad4c19c1290f504c464a6db96b719848 | |
| parent | c5b9bef5ed74c4180da6e6425d1bfd79f3a57f5c (diff) | |
lots more is working
| -rw-r--r-- | argv.custom.go | 19 | ||||
| -rw-r--r-- | argv.template.go | 13 |
2 files changed, 31 insertions, 1 deletions
diff --git a/argv.custom.go b/argv.custom.go index 066d80a..1e8abac 100644 --- a/argv.custom.go +++ b/argv.custom.go @@ -1,5 +1,11 @@ package main +import ( + "os" + + "go.wit.com/lib/protobuf/argvpb" +) + // this is where to customize argv for your application var APPNAME string = "basicwindow" @@ -13,3 +19,16 @@ func (a args) Description() string { This basicwindow example demonstrates multiple windows ` } + +// sends the strings to bash or zsh that will be your options +func (a args) SendCompletionStrings(pb *argvpb.Argv) { + if pb.Cmd == "" { + // these are base autocomplete strings + matches := []string{"--bash", "--version", "demo", "gui"} + pb.SendStrings(matches) + } else { + // autogenerate the strings for the subcommand using github.com/alexflint/go-arg + pb.GenerateSubCommandStrings(pb.Goargs...) + } + os.Exit(0) +} diff --git a/argv.template.go b/argv.template.go index f6cd250..8be4948 100644 --- a/argv.template.go +++ b/argv.template.go @@ -36,6 +36,17 @@ func (args) WriteHelpForAutocomplete(part string, subcmd ...string) error { return me.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, part, subcmd...) } +func (args) WriteHelpForAutocompleteDebug(part string, subcmd ...string) error { + f, _ := os.OpenFile("/tmp/argv.junk", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + return me.pp.WriteHelpForAutocomplete(f, os.Stdout, part, subcmd...) +} + +// add this funcgion: this will print the help +func (args) WriteHelp() error { + me.pp.WriteHelp(os.Stderr) + return nil +} + func (args) InitGui() error { // panic("got here") arg.Register(&gui.ArgvGui) @@ -47,7 +58,7 @@ func (args) InitGui() error { func (args) Exit() { gui.UnloadToolkits() if me.argv.Verbose() { - log.Info("argv.Exit() called", APPNAME + ".Exit()") + log.Info("argv.Exit() called", APPNAME+".Exit()") } } |
