summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/github/github.plugin.zsh17
1 files changed, 17 insertions, 0 deletions
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
index 598b059c1..66a10cfdb 100644
--- a/plugins/github/github.plugin.zsh
+++ b/plugins/github/github.plugin.zsh
@@ -1,5 +1,22 @@
# Setup hub function for git, if it is available; http://github.com/defunkt/hub
if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
+ # Autoload _git completion functions
+ if declare -f _git > /dev/null; then
+ _git
+ fi
+
+ if declare -f _git_commands > /dev/null; then
+ _hub_commands=(
+ 'alias:show shell instructions for wrapping git'
+ 'pull-request:open a pull request on GitHub'
+ 'fork:fork origin repo on GitHub'
+ 'create:create new repo on GitHub for the current project'
+ 'browse:browse the project on GitHub'
+ 'compare:open GitHub compare view'
+ )
+ # Extend the '_git_commands' function with hub commands
+ eval "$(declare -f _git_commands | sed -e 's/base_commands=(/base_commands=(${_hub_commands} /')"
+ fi
# eval `hub alias -s zsh`
function git(){
if ! (( $+_has_working_hub )); then