<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.3"?>
<!--
	<copyright>
	
	Copyright (c) 2004 - 2008 Eike Stepper, Germany.
	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:
	  Eike Stepper - Initial API and implementation
	
	</copyright>
-->

<plugin>

   <extension-point id="functions" name="Template Functions" schema="schema/functions.exsd"/>

   <extension
         point="org.eclipse.net4j.template.functions">
      <function
            class="org.eclipse.net4j.internal.template.functions.ExtractFunction"
            name="extract"/>
      <function
            class="org.eclipse.net4j.internal.template.functions.ReplaceFunction"
            name="replace"/>
      <function
            class="org.eclipse.net4j.internal.template.functions.CapitalizeFunction"
            name="capitalize"/>
      <function
            class="org.eclipse.net4j.internal.template.functions.UncapitalizeFunction"
            name="uncapitalize"/>
      <function
            class="org.eclipse.net4j.internal.template.functions.CapitalizeAllFunction"
            name="capitalize-all"/>
      <function
            class="org.eclipse.net4j.internal.template.functions.UncapitalizeAllFunction"
            name="uncapitalize-all"/>
   </extension>
   
   <extension
         id="org.eclipse.net4j.template.TemplateNature"
         name="Template Project Nature"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="org.eclipse.net4j.internal.template.nature.TemplateNature">
         </run>
      </runtime>
   </extension>

</plugin>
