Skip to content

Commit

Permalink
fix: Don't complete _command on zsh
Browse files Browse the repository at this point in the history
As reported by @VorpalBlade in twpayne/chezmoi#2047:

Previously the generated zsh completion script started with the line

    #compdef _<command> <command>

where \<command\> is the command that the zsh completion script is generated for.

This enabled completions for both \<command> and _\<command>, but _\<command> is the completion function itself and should not be completed. Furthermore, attempting to autocomplete _<command> (e.g. typing "_\<command>\<Space>\<Tab>" in a zsh shell) causes zsh to hang.

This commit fixes the #compdef line to only complete \<command>, not _\<command>.

Co-authored-by: Arvid Norlander <VorpalBlade@users.noreply.github.com>

Merge spf13/cobra#1690
  • Loading branch information
twpayne authored and hoshsadiq committed Aug 24, 2022
1 parent 1c95e05 commit c3e6b4f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion zsh_completions.go
Expand Up @@ -53,7 +53,7 @@ func genZshComp(buf io.StringWriter, name string, includeDesc bool) {
if !includeDesc {
compCmd = ShellCompNoDescRequestCmd
}
util.WriteStringAndCheck(buf, fmt.Sprintf(`#compdef _%[1]s %[1]s
util.WriteStringAndCheck(buf, fmt.Sprintf(`#compdef %[1]s
# zsh completion for %-36[1]s -*- shell-script -*-
Expand Down

0 comments on commit c3e6b4f

Please sign in to comment.