summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Unix/Command/.distfiles2
-rw-r--r--Completion/Unix/Command/_ant38
3 files changed, 44 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 723813aa3..03c98facd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-08-09 Oliver Kiddle <opk@zsh.org>
+
+ * 17521: Completion/Unix/Command/_ant,
+ Completion/Unix/Command/.distfiles: new completion for ant
+
2002-08-08 Peter Stephenson <pws@csr.com>
* 17518: Doc/Zsh/metafaq.yo: mention www.zshwiki.org (from Bruno
diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles
index 33e1023e3..76c8cf8e1 100644
--- a/Completion/Unix/Command/.distfiles
+++ b/Completion/Unix/Command/.distfiles
@@ -18,5 +18,5 @@ _last _loadkeys _modutils _ruby _sysctl _links _samba
_user_admin _rsync _arping _spamassassin _mtools _ifconfig
_fsh _chkconfig _cdcd _irssi _mysqldiff _sccs
_netcat _larch _valgrind _texinfo _figlet
-_global _global_tags
+_global _global_tags _ant
'
diff --git a/Completion/Unix/Command/_ant b/Completion/Unix/Command/_ant
new file mode 100644
index 000000000..c1baf6f69
--- /dev/null
+++ b/Completion/Unix/Command/_ant
@@ -0,0 +1,38 @@
+#compdef ant -value-,ANT_ARGS,-default-
+
+typeset -A opt_args
+local state line curcontext="$curcontext"
+local target='*:target:->target'
+
+if [[ $service = *ANT_ARGS* ]]; then
+ compset -q
+ words=( fake "$words[@]" )
+ (( CURRENT++ ))
+ unset target
+fi
+
+_arguments -C \
+ '-help[display usage information]' \
+ '-projecthelp[print project hjelp information]' \
+ '-version[display version information]' \
+ '-diagnostics[display info useful to problem diagnosis]' \
+ '(-q -quiet)'{-q,-quiet}'[be extra quiet]' \
+ '(-v -verbose)'{-v,-verbose}'[be more verbose]' \
+ '-debug[print debugging information]' \
+ '-emacs[produce logging information without adornments]' \
+ '(-l -logfile)'{-l,-logfile}'[use specified file for log]:logfile:_files' \
+ '-logger[the class which is to perform logging]:classname:_java_class' \
+ '-listener[add an instance of class as a project listener]:classname:_java_class' \
+ '(-f -file -buildfile)'{-f,-file,-buildfile}'[use specified build file]:build file:_files' \
+ '*-D[specify property with value to use]:property' \
+ '-propertyfile[load properties from specfied file]:property file:_files' \
+ '-inputhandler[specify class which will handle input requests]:class:_java_class' \
+ '-find[search for buildfile]:file:_files' \
+ $target && return
+
+if [[ -n $state ]]; then
+ targets=( $(sed -n 's/ *<target name="\([^"]*\)".*/\1/p' < build.xml) )
+ # ant can be used to get a list of targets for us like this but it is slow
+ # targets=( ${${(M)${(f)"$(_call_program targets $words[1] -projecthelp)"}:# *}# } )
+ _wanted targets expl target compadd -a targets
+fi