]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/plugins/git-remote-branch/git-remote-branch.plugin.zsh
Squashed commit of the following + cleanup afterwards:
[dotfiles.git] / zsh / plugins / git-remote-branch / git-remote-branch.plugin.zsh
diff --git a/zsh/plugins/git-remote-branch/git-remote-branch.plugin.zsh b/zsh/plugins/git-remote-branch/git-remote-branch.plugin.zsh
new file mode 100644 (file)
index 0000000..ff98cbf
--- /dev/null
@@ -0,0 +1,18 @@
+_git_remote_branch() {
+  ref=$(git symbolic-ref HEAD 2> /dev/null)
+  if [[ -n $ref ]]; then
+    if (( CURRENT == 2 )); then
+      # first arg: operation
+      compadd create publish rename delete track
+    elif (( CURRENT == 3 )); then
+      # second arg: remote branch name
+      compadd `git branch -r | grep -v HEAD | sed "s/.*\///" | sed "s/ //g"`
+    elif (( CURRENT == 4 )); then
+      # third arg: remote name
+      compadd `git remote`
+    fi
+  else;
+    _files
+  fi
+}
+compdef _git_remote_branch grb