1" Vim syntax file
2" Language:	ANT build file (xml)
3" Maintainer:	Johannes Zellner <johannes@zellner.org>
4" Last Change:	Tue Apr 27 13:05:59 CEST 2004
5" Filenames:	build.xml
6" $Id: ant.vim,v 1.1 2004/06/13 18:13:18 vimboss Exp $
7
8" Quit when a syntax file was already loaded
9if exists("b:current_syntax")
10    finish
11endif
12
13let s:ant_cpo_save = &cpo
14set cpo&vim
15
16runtime! syntax/xml.vim
17
18syn case ignore
19
20if !exists('*AntSyntaxScript')
21    fun AntSyntaxScript(tagname, synfilename)
22	unlet b:current_syntax
23	let s:include = expand("<sfile>:p:h").'/'.a:synfilename
24	if filereadable(s:include)
25	    exe 'syn include @ant'.a:tagname.' '.s:include
26	else
27	    exe 'syn include @ant'.a:tagname." $VIMRUNTIME/syntax/".a:synfilename
28	endif
29
30	exe 'syn region ant'.a:tagname
31		    \." start=#<script[^>]\\{-}language\\s*=\\s*['\"]".a:tagname."['\"]\\(>\\|[^>]*[^/>]>\\)#"
32		    \.' end=#</script>#'
33		    \.' fold'
34		    \.' contains=@ant'.a:tagname.',xmlCdataStart,xmlCdataEnd,xmlTag,xmlEndTag'
35		    \.' keepend'
36	exe 'syn cluster xmlRegionHook add=ant'.a:tagname
37    endfun
38endif
39
40" TODO: add more script languages here ?
41call AntSyntaxScript('javascript', 'javascript.vim')
42call AntSyntaxScript('jpython', 'python.vim')
43
44
45syn cluster xmlTagHook add=antElement
46
47syn keyword antElement display WsdlToDotnet addfiles and ant antcall antstructure apply archives arg argument
48syn keyword antElement display assertions attrib attribute available basename bcc blgenclient bootclasspath
49syn keyword antElement display borland bottom buildnumber buildpath buildpathelement bunzip2 bzip2 cab
50syn keyword antElement display catalogpath cc cccheckin cccheckout cclock ccmcheckin ccmcheckintask ccmcheckout
51syn keyword antElement display ccmcreatetask ccmkattr ccmkbl ccmkdir ccmkelem ccmklabel ccmklbtype
52syn keyword antElement display ccmreconfigure ccrmtype ccuncheckout ccunlock ccupdate checksum chgrp chmod
53syn keyword antElement display chown classconstants classes classfileset classpath commandline comment
54syn keyword antElement display compilerarg compilerclasspath concat concatfilter condition copy copydir
55syn keyword antElement display copyfile coveragepath csc custom cvs cvschangelog cvspass cvstagdiff cvsversion
56syn keyword antElement display daemons date defaultexcludes define delete deletecharacters deltree depend
57syn keyword antElement display depends dependset depth description different dirname dirset disable dname
58syn keyword antElement display doclet doctitle dtd ear echo echoproperties ejbjar element enable entity entry
59syn keyword antElement display env equals escapeunicode exclude excludepackage excludesfile exec execon
60syn keyword antElement display existing expandproperties extdirs extension extensionSet extensionset factory
61syn keyword antElement display fail filelist filename filepath fileset filesmatch filetokenizer filter
62syn keyword antElement display filterchain filterreader filters filterset filtersfile fixcrlf footer format
63syn keyword antElement display from ftp generic genkey get gjdoc grant group gunzip gzip header headfilter http
64syn keyword antElement display ignoreblank ilasm ildasm import importtypelib include includesfile input iplanet
65syn keyword antElement display iplanet-ejbc isfalse isreference isset istrue jar jarlib-available
66syn keyword antElement display jarlib-manifest jarlib-resolve java javac javacc javadoc javadoc2 jboss jdepend
67syn keyword antElement display jjdoc jjtree jlink jonas jpcoverage jpcovmerge jpcovreport jsharpc jspc
68syn keyword antElement display junitreport jvmarg lib libfileset linetokenizer link loadfile loadproperties
69syn keyword antElement display location macrodef mail majority manifest map mapper marker mergefiles message
70syn keyword antElement display metainf method mimemail mkdir mmetrics modified move mparse none not options or
71syn keyword antElement display os outputproperty package packageset parallel param patch path pathconvert
72syn keyword antElement display pathelement patternset permissions prefixlines present presetdef project
73syn keyword antElement display property propertyfile propertyref propertyset pvcs pvcsproject record reference
74syn keyword antElement display regexp rename renameext replace replacefilter replaceregex replaceregexp
75syn keyword antElement display replacestring replacetoken replacetokens replacevalue replyto report resource
76syn keyword antElement display revoke rmic root rootfileset rpm scp section selector sequential serverdeploy
77syn keyword antElement display setproxy signjar size sleep socket soscheckin soscheckout sosget soslabel source
78syn keyword antElement display sourcepath sql src srcfile srcfilelist srcfiles srcfileset sshexec stcheckin
79syn keyword antElement display stcheckout stlabel stlist stringtokenizer stripjavacomments striplinebreaks
80syn keyword antElement display striplinecomments style subant substitution support symlink sync sysproperty
81syn keyword antElement display syspropertyset tabstospaces tag taglet tailfilter tar tarfileset target
82syn keyword antElement display targetfile targetfilelist targetfileset taskdef tempfile test testlet text title
83syn keyword antElement display to token tokenfilter touch transaction translate triggers trim tstamp type
84syn keyword antElement display typedef unjar untar unwar unzip uptodate url user vbc vssadd vsscheckin
85syn keyword antElement display vsscheckout vsscp vsscreate vssget vsshistory vsslabel waitfor war wasclasspath
86syn keyword antElement display webapp webinf weblogic weblogictoplink websphere whichresource wlclasspath
87syn keyword antElement display wljspc wsdltodotnet xmlcatalog xmlproperty xmlvalidate xslt zip zipfileset
88syn keyword antElement display zipgroupfileset
89
90hi def link antElement Statement
91
92let b:current_syntax = "ant"
93
94let &cpo = s:ant_cpo_save
95unlet s:ant_cpo_save
96
97" vim: ts=8
98