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

<!--
/*******************************************************************************
 * Copyright (c) 2000, 2008 IBM Corporation and others.
 *
 * This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *     Martin Karpisek (martin.karpisek@gmail.com) - bug 199014
 *******************************************************************************/ 
-->

<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.target" 
	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.target" 
    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" encoding="UTF-8"?>
<!-- ====================================================================== 
     ${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>