<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.imp.metatooling">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.imp.metatooling" id="tokenColorer" name="IMP IDE Token Colorer"/>
      </appInfo>
      <documentation>
         This extension point allows providers to provide coloring hints for syntax-driven coloring of a document. The provider specifies what languages it can provide colorings for. The provider has to implement the ITokenColorer interface. It will be presented with a token, and should return its suggested text color and font.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="tokenColorer"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="tokenColorer">
      <annotation>
         <documentation>
            The org.eclips.imp.editor.tokenColorer allowes contributors to provide coloring advise for a given set of tokens.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The fully-qualified name of the class that will be generated to serve as the implementation of this extension.  This class will be assigned the given name and located in the given package in the currently selected project.  (The package will be created if it does not already exist.)
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.imp.services.ITokenColorer"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="language" type="string" use="required">
            <annotation>
               <documentation>
                  The name of the language to which this service applies. There must be a corresponding &quot;language description&quot; extension whose name matches this attribute&apos;s value.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         [Enter the first release in which this extension point appears.]
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;extension
         point=&quot;org.eclipse.imp.outliner&quot;&gt;
      &lt;outliner
            class=&quot;org.eclipse.imp.DefaultOutliner&quot;
            language=&quot;*&quot;
            name=&quot;Default Outliner&quot;
            id=&quot;org.eclipse.imp.outliner.default&quot;/&gt;
   &lt;/extension&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         [Enter API information here.]
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         See org.eclipse.imp.DefaultOutliner.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Licensed Materials - Property of IBM,
 (c) Copyright IBM Corp. 1998, 2004  All Rights Reserved
      </documentation>
   </annotation>

</schema>
