vendor/github.com/spf13/cobra/zsh_completions.md
changeset 251 1c52a0eeb952
child 256 6d9efbef00a9
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
       
     1 ## Generating Zsh Completion for your cobra.Command
       
     2 
       
     3 Cobra supports native Zsh completion generated from the root `cobra.Command`.
       
     4 The generated completion script should be put somewhere in your `$fpath` named
       
     5 `_<YOUR COMMAND>`.
       
     6 
       
     7 ### What's Supported
       
     8 
       
     9 * Completion for all non-hidden subcommands using their `.Short` description.
       
    10 * Completion for all non-hidden flags using the following rules:
       
    11   * Filename completion works by marking the flag with `cmd.MarkFlagFilename...`
       
    12     family of commands.
       
    13   * The requirement for argument to the flag is decided by the `.NoOptDefVal`
       
    14     flag value - if it's empty then completion will expect an argument.
       
    15   * Flags of one of the various `*Array` and `*Slice` types supports multiple
       
    16     specifications (with or without argument depending on the specific type).
       
    17 * Completion of positional arguments using the following rules:
       
    18   * Argument position for all options below starts at `1`. If argument position
       
    19     `0` is requested it will raise an error.
       
    20   * Use `command.MarkZshCompPositionalArgumentFile` to complete filenames. Glob
       
    21     patterns (e.g. `"*.log"`) are optional - if not specified it will offer to
       
    22     complete all file types.
       
    23   * Use `command.MarkZshCompPositionalArgumentWords` to offer specific words for
       
    24     completion. At least one word is required.
       
    25   * It's possible to specify completion for some arguments and leave some
       
    26     unspecified (e.g. offer words for second argument but nothing for first
       
    27     argument). This will cause no completion for first argument but words
       
    28     completion for second argument.
       
    29   * If no argument completion was specified for 1st argument (but optionally was
       
    30     specified for 2nd) and the command has `ValidArgs` it will be used as
       
    31     completion options for 1st argument.
       
    32   * Argument completions only offered for commands with no subcommands.
       
    33 
       
    34 ### What's not yet Supported
       
    35 
       
    36 * Custom completion scripts are not supported yet (We should probably create zsh
       
    37   specific one, doesn't make sense to re-use the bash one as the functions will
       
    38   be different).
       
    39 * Whatever other feature you're looking for and doesn't exist :)