Skip to content

Commit e31813d

Browse files
committed
fix: make fish completions work
1 parent efab65a commit e31813d

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

command_setup.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func (cmd *Command) setupDefaults(osArgs []string) {
8989
}
9090

9191
if cmd.EnableShellCompletion || cmd.Root().shellCompletion {
92-
completionCommand := buildCompletionCommand(cmd.Name)
92+
completionCommand := buildCompletionCommand(cmd)
9393

9494
if cmd.ShellCompletionCommandName != "" {
9595
tracef(

completion.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,42 @@ const (
1414
completionFlag = "--generate-shell-completion"
1515
)
1616

17-
type renderCompletion func(cmd *Command, appName string) (string, error)
17+
type renderCompletion func(cmd *Command) (string, error)
1818

1919
var (
2020
//go:embed autocomplete
2121
autoCompleteFS embed.FS
2222

2323
shellCompletions = map[string]renderCompletion{
24-
"bash": func(c *Command, appName string) (string, error) {
24+
"bash": func(c *Command) (string, error) {
2525
b, err := autoCompleteFS.ReadFile("autocomplete/bash_autocomplete")
26-
return fmt.Sprintf(string(b), appName), err
26+
return fmt.Sprintf(string(b), c.Name), err
2727
},
28-
"zsh": func(c *Command, appName string) (string, error) {
28+
"zsh": func(c *Command) (string, error) {
2929
b, err := autoCompleteFS.ReadFile("autocomplete/zsh_autocomplete")
30-
return fmt.Sprintf(string(b), appName), err
30+
return fmt.Sprintf(string(b), c.Name), err
3131
},
32-
"fish": func(c *Command, appName string) (string, error) {
32+
"fish": func(c *Command) (string, error) {
3333
return c.ToFishCompletion()
3434
},
35-
"pwsh": func(c *Command, appName string) (string, error) {
35+
"pwsh": func(c *Command) (string, error) {
3636
b, err := autoCompleteFS.ReadFile("autocomplete/powershell_autocomplete.ps1")
3737
return string(b), err
3838
},
3939
}
4040
)
4141

42-
func buildCompletionCommand(appName string) *Command {
42+
func buildCompletionCommand(rootCmd *Command) *Command {
4343
return &Command{
4444
Name: completionCommandName,
4545
Hidden: true,
4646
Action: func(ctx context.Context, cmd *Command) error {
47-
return printShellCompletion(ctx, cmd, appName)
47+
return printShellCompletion(ctx, cmd, rootCmd)
4848
},
4949
}
5050
}
5151

52-
func printShellCompletion(_ context.Context, cmd *Command, appName string) error {
52+
func printShellCompletion(_ context.Context, cmd *Command, rootCmd *Command) error {
5353
var shells []string
5454
for k := range shellCompletions {
5555
shells = append(shells, k)
@@ -67,7 +67,7 @@ func printShellCompletion(_ context.Context, cmd *Command, appName string) error
6767
return Exit(fmt.Sprintf("unknown shell %s, available shells are %+v", s, shells), 1)
6868
}
6969

70-
completionScript, err := renderCompletion(cmd, appName)
70+
completionScript, err := renderCompletion(rootCmd)
7171
if err != nil {
7272
return Exit(err, 1)
7373
}

0 commit comments

Comments
 (0)