<?xml version="1.0" encoding="UTF-8"?>

<!--
/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/ 
-->

<templates>

<template 
	context="org.eclipse.ant.ui.templateContextType.task" 
	description="%javacTemplate1.description" 
	id="org.eclipse.ant.ui.templates.javac1" 
	name="javac">&lt;javac srcdir=&quot;${src}&quot;
         destdir=&quot;${dst}&quot;
         classpath=&quot;${jarfile}&quot;
         debug=&quot;${on}&quot;
	/&gt;${cursor}</template>

<template 
	context="org.eclipse.ant.ui.templateContextType.task" 
	description="%filesetTemplate1.description" 
	id="org.eclipse.ant.ui.templates.fileset1" 
	name="fileset"><![CDATA[<fileset dir="${dir}" id="${id}">
    <include name="${include}"/>
    <exclude name="${exclude}"/>
</fileset>
${cursor}]]></template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%deleteTemplate1.description" 
    id="org.eclipse.ant.ui.templates.delete1" 
    name="delete"><![CDATA[<delete>
	<fileset dir="${dir}">
	    <include name="${include}"/>
	    <exclude name="${exclude}"/>
	</fileset>
</delete>
${cursor}]]></template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%deleteTemplate2.description" 
    id="org.eclipse.ant.ui.templates.delete2" 
    name="delete"><![CDATA[<delete>
    <fileset refid="${cursor}"/>
</delete>]]>
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%propertyTemplate1.description" 
    id="org.eclipse.ant.ui.templates.property1" 
    name="property">&lt;property name=&quot;${name}&quot; location=&quot;${location}&quot;/&gt;
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%propertyTemplate2.description" 
    id="org.eclipse.ant.ui.templates.property2" 
    name="property">&lt;property name=&quot;${name}&quot; value=&quot;${value}&quot;/&gt;
</template>

<template 
	context="org.eclipse.ant.ui.templateContextType.task" 
	description="%targetTemplate1.description" 
	id="org.eclipse.ant.ui.templates.target1" 
	name="target"><![CDATA[<!-- ================================= 
          target: ${name}              
         ================================= -->
    <target name="${name}" depends="${depends}" description="--> ${description}">
        ${cursor}
    </target>
]]></template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%targetTemplate2.description" 
    id="org.eclipse.ant.ui.templates.target2" 
    name="target"><![CDATA[<!-- - - - - - - - - - - - - - - - - - 
          target: ${name}                      
         - - - - - - - - - - - - - - - - - -->
    <target name="${name}">
            ${cursor}
    </target>
]]></template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%macrodefTemplate.description" 
    id="org.eclipse.ant.ui.templates.macrodef" 
    name="macrodef"><![CDATA[<!-- = = = = = = = = = = = = = = = = =
          macrodef: ${name}          
         = = = = = = = = = = = = = = = = = -->
    <macrodef name="${name}">
        <attribute name="${argname}" default="${default}" />
        <sequential>
            ${cursor}
        </sequential>
    </macrodef>
]]></template>

<template 
	context="org.eclipse.ant.ui.templateContextType.buildFile" 
	description="%buildFileTemplate1.description" 
	id="org.eclipse.ant.ui.templates.buildFile1" 
	name="%buildFileTemplate1.name"><![CDATA[<?xml version="1.0"?>
<!-- ====================================================================== 
     ${date} ${time}                                                        

     ${project}    
     ${description}
                   
     ${user}                                                                
     ====================================================================== -->
<project name="${project}" default="${default}">
    <description>
            ${description}
    </description>

    <!-- ================================= 
          target: ${default}              
         ================================= -->
    <target name="${default}" depends="${depends}" description="--> ${description}">
        ${cursor}
    </target>

    <!-- - - - - - - - - - - - - - - - - - 
          target: ${depends}                      
         - - - - - - - - - - - - - - - - - -->
    <target name="${depends}">
    </target>

</project>
]]></template>

<template name="%antComment.name" description="%antComment.description"
	context="org.eclipse.ant.ui.templateContextType.buildFile" 
	id="org.eclipse.ant.ui.templates.comment1" ><![CDATA[<!-- ${word_selection}-->]]></template>

<template name="%antComment.name" description="%antComment.description"
	context="org.eclipse.ant.ui.templateContextType.task" 
	id="org.eclipse.ant.ui.templates.comment2"><![CDATA[<!-- ${word_selection}-->]]></template>

<template name="%antLineComment.name" description="%antLineComment.description"
	context="org.eclipse.ant.ui.templateContextType.buildFile" 
	id="org.eclipse.ant.ui.templates.comment3"><![CDATA[<!--
${line_selection}
-->]]></template>

<template name="%antLineComment.name" description="%antLineComment.description"
	context="org.eclipse.ant.ui.templateContextType.task"
	id="org.eclipse.ant.ui.templates.comment4"><![CDATA[<!--
${line_selection}
-->]]></template>

</templates>