summary refs log tree commit diff
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2007-03-08 04:31:03 +0000
committerClint Adams <clint@users.sourceforge.net>2007-03-08 04:31:03 +0000
commit363308f3df1510088c8253e09f1a7d2115f9515a (patch)
tree000f3cd7be11d95d50068623eb87d40ca583dcc4
parent335fcaa9c566e7e7f514c2e2f7ab000fb2fd38d8 (diff)
downloadzsh-363308f3df1510088c8253e09f1a7d2115f9515a.tar.gz
zsh-363308f3df1510088c8253e09f1a7d2115f9515a.tar.xz
zsh-363308f3df1510088c8253e09f1a7d2115f9515a.zip
23206: completion for hg.
-rw-r--r--ChangeLog4
-rw-r--r--Completion/Unix/Command/_mercurial27
2 files changed, 31 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index bcf61fc5d..6aadca475 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-08  Clint Adams  <clint@zsh.org>
+
+	* 23206: Completion/Unix/Commands/_mercurial: completion for hg.
+
 2007-03-05  Clint Adams  <clint@zsh.org>
 
 	* 23205: Doc/Zsh/options.yo: fix misspelling of "effect".
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