Skip to content

Commit ba510f0

Browse files
authored
Merge pull request #3261 from carapace-sh/complete-variants
complete all variants for empty name
2 parents f09d358 + 1915f65 commit ba510f0

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

cmd/carapace/cmd/choice.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
import (
44
"fmt"
5+
"strings"
56

67
"github.com/carapace-sh/carapace"
78
"github.com/carapace-sh/carapace-bin/cmd/carapace/cmd/completers"
@@ -66,6 +67,10 @@ func init() {
6667
return carapace.ActionValuesDescribed(vals...).FilterArgs()
6768
}
6869

70+
if strings.HasPrefix(c.Value, "/") || strings.HasPrefix(c.Value, "@") {
71+
return carapace.ActionValues()
72+
}
73+
6974
return carapace.ActionMultiPartsN("@", 2, func(c carapace.Context) carapace.Action {
7075
switch len(c.Parts) {
7176
case 0:

pkg/actions/tools/carapace/completer.go

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,23 @@ func ActionNames() carapace.Action {
6262
}
6363

6464
func ActionVariants(name string) carapace.Action {
65-
return carapace.ActionCallback(func(c carapace.Context) carapace.Action {
66-
if name == "" {
67-
return carapace.ActionValues()
68-
}
69-
70-
return actionCompleters(name, func(m completer.CompleterMap) carapace.Action {
71-
// TODO slow
72-
batch := carapace.Batch()
73-
for _, variants := range m {
74-
for _, v := range variants {
75-
if v.Variant == "" {
76-
continue
77-
}
78-
switch name {
79-
case "":
80-
batch = append(batch, carapace.ActionValues(v.Variant).Tag(completerTag(v)))
81-
default:
82-
batch = append(batch, carapace.ActionStyledValuesDescribed(v.Variant, v.Description, completerStyle(v)).Tag(completerTag(v)))
83-
}
65+
return actionCompleters(name, func(m completer.CompleterMap) carapace.Action {
66+
// TODO slow
67+
batch := carapace.Batch()
68+
for _, variants := range m {
69+
for _, v := range variants {
70+
if v.Variant == "" {
71+
continue
72+
}
73+
switch name {
74+
case "":
75+
batch = append(batch, carapace.ActionValues(v.Variant).Tag(completerTag(v)))
76+
default:
77+
batch = append(batch, carapace.ActionStyledValuesDescribed(v.Variant, v.Description, completerStyle(v)).Tag(completerTag(v)))
8478
}
8579
}
86-
return batch.ToA()
87-
})
80+
}
81+
return batch.ToA()
8882
})
8983
}
9084

0 commit comments

Comments
 (0)