diff options
| author | Jeff Carr <[email protected]> | 2025-09-25 00:44:55 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-25 00:44:55 -0500 |
| commit | b4544aeadd67a6b27407c6da623d6b1ed6ee5204 (patch) | |
| tree | 7421bb4d2549465468a95242f7d4830e244391e1 | |
| parent | f2543af73813d1030e110ad539e4be67c3893e62 (diff) | |
more accurate autocompletev0.0.12
| -rw-r--r-- | complete.go | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/complete.go b/complete.go index 45fdb76..3f4ff60 100644 --- a/complete.go +++ b/complete.go @@ -78,25 +78,37 @@ func (pb *Auto) doHandlePB() error { return err } -func (pb *Auto) SubCommand(cmd string) { +func (pb *Auto) SubCommand(cmd ...string) { partial := strings.Trim(pb.Partial, "'") if pb.Debug { - myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, pb.Cmd) + myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, cmd...) // myAuto.pp.GetUsageForSubcommand(os.Stdout, os.Stderr, partial, cmd) // myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd) } else { f, _ := os.OpenFile("/tmp/outlook", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) - myAuto.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, pb.Cmd) + myAuto.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, cmd...) // myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd) } os.Exit(0) // SubCommand(cmd) } +func (pb *Auto) SubCommandShow() { + partial := strings.Trim(pb.Partial, "'") + if pb.Debug { + myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, "show", "repo") + } else { + f, _ := os.OpenFile("/tmp/outlook", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + myAuto.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, "show", "repo") + } + os.Exit(0) +} + func (pb *Auto) SubCommand2(cmd string, addmatch []string) { partial := strings.Trim(pb.Partial, "'") if pb.Debug { - myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, pb.Cmd) + // myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, pb.Cmd) + myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, "", "") // myAuto.pp.GetUsageForSubcommand(os.Stdout, os.Stderr, partial, cmd) // myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd) } else { @@ -108,6 +120,10 @@ func (pb *Auto) SubCommand2(cmd string, addmatch []string) { // SubCommand(cmd) } +func (pb *Auto) Autocomplete3(sendthis []string) { + pb.Autocomplete2(strings.Join(sendthis, " ")) +} + func (pb *Auto) Autocomplete2(sendthis string) { dur := pb.Duration.AsDuration() if dur < time.Millisecond*200 { @@ -187,11 +203,22 @@ func parseArgv(argname string) *Auto { pb.Argv = []string{""} return pb } - pb.Argv = os.Args[4:] if pb.Partial == "''" { pb.Partial = "" pb.Cmd = "todo:findme" } + // pb.Argv = os.Args[4:] + for _, s := range os.Args[4:] { + if s == "--autodebug" { + continue + } + tmp := strings.Trim(pb.Partial, "'") + if tmp == s { + // don't put pb.Partial into Argv + continue + } + pb.Argv = append(pb.Argv, s) + } // set pb.Cmd to the first thing that doesn't have a '-' arg for _, s := range pb.Argv { if strings.HasPrefix(s, "-") { |
