| #!/bin/zsh |
| |
| # grunt-cli |
| # http://gruntjs.com/ |
| # |
| # Copyright (c) 2016 Tyler Kellen, contributors |
| # Licensed under the MIT license. |
| # https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT |
| |
| # Usage: |
| # |
| # To enable zsh <tab> completion for grunt, add the following line (minus the |
| # leading #, which is the zsh comment character) to your ~/.zshrc file: |
| # |
| # eval "$(grunt --completion=zsh)" |
| |
| # Enable zsh autocompletion. |
| function _grunt_completion() { |
| local completions |
| # The currently-being-completed word. |
| local cur="${words[@]}" |
| # The current grunt version, available tasks, options, etc. |
| local gruntinfo="$(grunt --version --verbose 2>/dev/null)" |
| # Options and tasks. |
| local opts="$(echo "$gruntinfo" | awk '/Available options: / {$1=$2=""; print $0}')" |
| local compls="$(echo "$gruntinfo" | awk '/Available tasks: / {$1=$2=""; print $0}')" |
| # Only add -- or - options if the user has started typing - |
| [[ "$cur" == -* ]] && compls="$compls $opts" |
| # Trim whitespace. |
| compls=$(echo "$compls" | sed -e 's/^ *//g' -e 's/ *$//g') |
| # Turn compls into an array to of completions. |
| completions=(${=compls}) |
| # Tell complete what stuff to show. |
| compadd -- $completions |
| } |
| |
| compdef _grunt_completion grunt |