summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2009-05-22 20:13:17 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2009-05-22 20:13:17 +0000
commita1d6616455d68a07d009bc538355970826625f7a (patch)
tree9ede55c21d21b19e032b04eec8d5eece238bf946 /Completion/Unix/Command
parentf359213eec1dcd2a60b31e6a377328cbc6b3cbd8 (diff)
downloadzsh-a1d6616455d68a07d009bc538355970826625f7a.tar.gz
zsh-a1d6616455d68a07d009bc538355970826625f7a.zip
Julien Langer: 26978: stgit patch name completion
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_stgit29
1 files changed, 27 insertions, 2 deletions
diff --git a/Completion/Unix/Command/_stgit b/Completion/Unix/Command/_stgit
index 69b50004c..c8a3c8c80 100644
--- a/Completion/Unix/Command/_stgit
+++ b/Completion/Unix/Command/_stgit
@@ -50,8 +50,33 @@ subcmds=(
'status:show the tree status'
)
+local curcontext="$curcontext"
+local subcmd
+local ret=1
+
if (( CURRENT == 2 )); then
- _describe -t commands 'stgit command' subcmds
+ _describe -t commands 'stgit command' subcmds && ret=0
else
- _files
+ shift words
+ (( CURRENT-- ))
+ subcmd="$words[1]"
+ curcontext="${curcontext%:*}-${subcmd}:"
+
+ case $subcmd in
+ (push)
+ _wanted -V "unapplied patches" expl "patch" compadd $(stg unapplied) \
+ && ret=0
+ ;;
+ (pop)
+ _wanted -V "applied patches" expl "patch" compadd $(stg applied) && ret=0
+ ;;
+ (edit|files|goto|rename|log|float|delete|sink|mail|sync|show|pick|hide)
+ _wanted -V "patches" expl "patch" compadd $(stg series --noprefix) && ret=0
+ ;;
+ (*)
+ _files
+ ;;
+ esac
fi
+
+return ret