From 1a3940b9a30f6c85d2b46a05561e4ecd02122de8 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 2 Feb 2012 18:25:21 -0500 Subject: [PATCH] Added the ability to browse GitHub files. --- plugins/git/completions/_git-hub | 9 +++++++-- plugins/git/functions/git-hub | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/git/completions/_git-hub b/plugins/git/completions/_git-hub index 904b8c54..ac17fd27 100644 --- a/plugins/git/completions/_git-hub +++ b/plugins/git/completions/_git-hub @@ -8,11 +8,12 @@ # Sorin Ionescu # -local state remotes remote branches ret=1 +local state remotes remote branches files ret=1 _arguments -C -s -S \ '1::args:->remote' \ - '2::args:->branch' && ret=0 + '2::args:->branch' \ + '3::args:->file' && ret=0 case "$state" in (remote) @@ -33,6 +34,10 @@ case "$state" in )) _describe -t branch 'branches' branches && ret=0 ;; + (file) + files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2>/dev/null)"}) + _wanted file expl 'file' _multi_parts - / files && ret=0 + ;; esac return $ret diff --git a/plugins/git/functions/git-hub b/plugins/git/functions/git-hub index d3758d47..59cb82a2 100644 --- a/plugins/git/functions/git-hub +++ b/plugins/git/functions/git-hub @@ -5,7 +5,7 @@ # Sorin Ionescu # -local remote branches branch current_branch url +local remote branches branch current_branch file url remote="${1:-origin}" url=$( @@ -18,6 +18,7 @@ branches=($( )) current_branch="$(git-branch)" branch="${2:-master}" +file="$3" if [[ -z "$2" ]]; then if (( $branches[(I)$current_branch] != 0 )); then @@ -28,7 +29,7 @@ if [[ -z "$2" ]]; then fi if [[ -n "$url" ]]; then - url="${url}/tree/${branch}" + url="${url}/tree/${branch}/${file}" if (( $+commands[$BROWSER] )); then "$BROWSER" "$url"