about summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-11-12 04:02:58 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-11-12 04:02:58 +0000
commit2aa0c11efb9fe06cd5ba5233c04014d7431bb0f3 (patch)
tree80c802df82d1110cdf2f11efbd642387ede20189 /Completion/Unix
parent6d4de1b712fbe7d4e79873e54c4c21dac456ca4f (diff)
downloadzsh-2aa0c11efb9fe06cd5ba5233c04014d7431bb0f3.tar.gz
zsh-2aa0c11efb9fe06cd5ba5233c04014d7431bb0f3.tar.xz
zsh-2aa0c11efb9fe06cd5ba5233c04014d7431bb0f3.zip
23206: Merge new completion onto 4.2 branch.
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_mercurial27
1 files changed, 27 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_mercurial b/Completion/Unix/Command/_mercurial
new file mode 100644
index 000000000..06212314e
--- /dev/null
+++ b/Completion/Unix/Command/_mercurial
@@ -0,0 +1,27 @@
+#compdef hg
+
+local context state line
+typeset -A opt_args
+
+if (( ! $+_mercurial_cmds )); then
+  local _mercurial_cmds
+  _mercurial_cmds=( $($service debugcomplete) )
+fi
+if (( ! $+_mercurial_options )); then
+  local _mercurial_options
+  _mercurial_options=( $($service debugcomplete --options) )
+fi
+
+_arguments \
+  "$_mercurial_options[@]" \
+  '*:command:->subcmds' && return 0
+
+case "$state" in
+  (subcmds)
+    if (( CURRENT == 2 )); then
+      compadd -- "$_mercurial_cmds[@]"
+    else
+      _files
+    fi
+  ;;
+esac