summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-25 00:44:55 -0500
committerJeff Carr <[email protected]>2025-09-25 00:44:55 -0500
commitb4544aeadd67a6b27407c6da623d6b1ed6ee5204 (patch)
tree7421bb4d2549465468a95242f7d4830e244391e1
parentf2543af73813d1030e110ad539e4be67c3893e62 (diff)
more accurate autocompletev0.0.12
-rw-r--r--complete.go37
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, "-") {