summaryrefslogtreecommitdiff
path: root/complete.go
diff options
context:
space:
mode:
Diffstat (limited to 'complete.go')
-rw-r--r--complete.go27
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 {