diff options
author | xero <x@xero.nu> | 2015-04-18 14:37:59 -0400 |
---|---|---|
committer | xero <x@xero.nu> | 2015-04-18 14:37:59 -0400 |
commit | 57a1c829609c04ff382f8a94327db629f917b3a5 (patch) | |
tree | 627fd3ac82a88f9f4ac2bf80d04e2c3682e9a98e /zsh/.zsh/completion/_nvm | |
parent | c2470791e31fa2952644e26c52ff1f956f03d41b (diff) | |
download | dotfiles_ascii-57a1c829609c04ff382f8a94327db629f917b3a5.tar.xz dotfiles_ascii-57a1c829609c04ff382f8a94327db629f917b3a5.zip |
setup zsh autocompletion for a few custom apps
Diffstat (limited to 'zsh/.zsh/completion/_nvm')
-rw-r--r-- | zsh/.zsh/completion/_nvm | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/zsh/.zsh/completion/_nvm b/zsh/.zsh/completion/_nvm new file mode 100644 index 0000000..2f6acc5 --- /dev/null +++ b/zsh/.zsh/completion/_nvm @@ -0,0 +1,85 @@ +#compdef nvm +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for nvm (https://github.com/creationix/nvm). +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Changwoo Park (https://github.com/pismute) +# +# ------------------------------------------------------------------------------ + +local curcontext="$curcontext" state line ret=1 + +local -a _1st_arguments +_1st_arguments=( + 'help:Show this message' + 'install:Download and install a <version>' + 'uninstall:Uninstall a <version>' + 'use:Modify PATH to use <version>' + 'run:Run <version> with <args> as arguments' + 'ls:List installed [versions]' + 'ls-remote:List remote versions available for install' + 'deactivate:Undo effects of NVM on current shell' + 'alias:Set an alias named <name> pointing to <version>. Show all aliases beginning with [<pattern>].' + 'unalias:Deletes the alias named <name>' + 'copy-packages:Install global NPM packages contained in <version> to current version' + 'clear-cache:Clear cache' + 'version:Show current node version' +) + +_arguments -C \ + '1: :->cmds' \ + '*: :->args' && ret=0 + +__nvm_aliases(){ + local aliases + aliases="" + if [ -d $NVM_DIR/alias ]; then + aliases="`cd $NVM_DIR/alias && ls`" + fi + echo "${aliases}" +} + +__nvm_versions(){ + echo "$(nvm_ls) $(__nvm_aliases)" +} + +case $state in + cmds) + _describe -t commands 'nvm command' _1st_arguments && ret=0 + ;; + + args) + case $words[2] in + (use|run|ls|list|install|uninstall|copy-packages) + + _values 'version' $(__nvm_versions) && ret=0 + ;; + + (alias|unalias) + + _values 'aliases' $(__nvm_aliases) && ret=0 + ;; + + *) + (( ret )) && _message 'no more arguments' + ;; + + esac + ;; +esac + +return ret + +# Local Variables: +# mode: Shell-Script +# sh-indentation: 2 +# indent-tabs-mode: nil +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et |