diff options
Diffstat (limited to 'complete.go')
| -rw-r--r-- | complete.go | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/complete.go b/complete.go index 7cd0bbf..2033e4f 100644 --- a/complete.go +++ b/complete.go @@ -37,14 +37,18 @@ func ParseFlagsArgv(dest ...interface{}) (*Parser, error) { s := fmt.Sprintf("p.Parse() problem in argv err(%v)\n", err) panic(s) } - if argvpb.PB.ErrCounter > 2 || argvpb.PB.OutCounter > 5 { - argvpb.PB.ErrCounter = 0 - argvpb.PB.OutCounter = 0 + if argvpb.PB.ErrCounter < 5 { if argvpb.Len() == 0 { // user didn't enter any text and is hitting <tab> after the command itself p.WriteHelp(argvpb.Stderr) + if p.match != nil { + // calls back to the application. this allows the application to provide autocomplete matches + p.match() + } return p, errors.New("WriteHelp() worked") } + } + if argvpb.PB.GetCmd() == "" { // user is trying to get help for a subcommand err = p.WriteHelpForAutocomplete("", argvpb.PB.Real...) if err != nil { @@ -53,17 +57,14 @@ func ParseFlagsArgv(dest ...interface{}) (*Parser, error) { } return p, errors.New("WriteHelpForAutocomplete() worked") } - if argvpb.PB.GetCmd() != "" { - err = p.WriteHelpForAutocomplete(argvpb.PB.Partial, argvpb.PB.Real...) - fmt.Fprintf(argvpb.Stddbg, "returned from WriteHelpForAutocomplete() pb.Real(%v)\n", argvpb.PB.Real) - fmt.Fprintf(argvpb.Stddbg, "returned from WriteHelpForAutocomplete(%v)\n", err) - if p.match != nil { - // calls back to the application. this allows the application to provide autocomplete matches - p.match() - } - return p, errors.New("WriteHelpForAutocomplete() subcommand worked") + err = p.WriteHelpForAutocomplete(argvpb.PB.Partial, argvpb.PB.Real...) + fmt.Fprintf(argvpb.Stddbg, "returned from WriteHelpForAutocomplete() pb.Real(%v)\n", argvpb.PB.Real) + fmt.Fprintf(argvpb.Stddbg, "returned from WriteHelpForAutocomplete(%v)\n", err) + if p.match != nil { + // calls back to the application. this allows the application to provide autocomplete matches + p.match() } - return p, nil + return p, errors.New("WriteHelpForAutocomplete() subcommand worked") } func (p *Parser) WriteHelpForAutocompleteArgv() error { |
