<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
 #=============================================================================#
 # Copyright (c) 2007, 2017 Stephan Wahlbrink and others.
 # 
 # This program and the accompanying materials are made available under the
 # terms of the Eclipse Public License 2.0 which is available at
 # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 # which is available at https://www.apache.org/licenses/LICENSE-2.0.
 # 
 # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 # 
 # Contributors:
 #     Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
 #=============================================================================#
-->

<plugin>
   
   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer class="org.eclipse.statet.internal.redocs.wikitext.r.textile.TextileRweavePreferenceInitializer"/>
   </extension>
   
   <extension
         point="org.eclipse.core.contenttype.contentTypes">
      <content-type
            id="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            base-type="org.eclipse.mylyn.wikitext.textile"
            name="%contentTypes_TextileRweave_name"
            file-extensions="Rtextile,rtextile"
            priority="normal">
         <property
               name="bom">
         </property>
      </content-type>
   </extension>
   <extension
         point="org.eclipse.statet.docmlet.WikitextMarkupLanguages">
      <markupLanguage
            name="Textile+R"
            label="RTextile (Textile+R)"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.core.RTextileLanguage"
            configClass="org.eclipse.statet.internal.redocs.wikitext.r.textile.core.RTextileConfig"
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave">
      </markupLanguage>
   </extension>
   <extension
         point="org.eclipse.statet.ltk.ContentTypeActivation">
      <contentType
            id="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            secondaryId="org.eclipse.statet.r.contentTypes.R"/>
      <contentType
            id="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            secondaryId="org.eclipse.statet.redocs.contentTypes.WikidocRweave"/>
   </extension>
   
   <extension
         point="org.eclipse.statet.autonature.AutoConfigurations">
      <onFileContent
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            enable="true">
         <ensureProjectNature
               natureId="org.eclipse.statet.r.resourceProjects.R"/>
         <ensureProjectNature
               natureId="org.eclipse.statet.docmlet.resourceProjects.Wikitext"/>
      </onFileContent>
   </extension>
   
   <extension
         point="org.eclipse.statet.ltk.ModelTypes">
      <contentType
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            modelTypeId="WikidocRweave">
      </contentType>
   </extension>
   
   <extension
         point="org.eclipse.team.core.fileTypes">
      <fileTypes
            extension="Rtextile"
            type="text"/>
      <fileTypes
            extension="rtextile"
            type="text"/>
   </extension>
   
   <extension
         point="org.eclipse.core.filebuffers.documentSetup">
      <participant
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.TextileRweaveDocumentSetupParticipant">
      </participant>
   </extension>
   
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.eclipse.statet.internal.redocs.wikitext.r.textile.core.RTextileConfig"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.ConfigUIAdapterFactory">
         <adapter
               type="org.eclipse.statet.docmlet.wikitext.ui.config.IMarkupConfigUIAdapter">
         </adapter>
      </factory>
   </extension>
   
   <extension
         point="org.eclipse.statet.docmlet.WikitextDocTemplates">
      <category
            id="TextileRweave.NewDoc"
            image="platform:/plugin/org.eclipse.statet.redocs.wikitext.r/icons/tool_16/new-wikidoc_rweave-file.png"
            label="%docTemplates_NewTextileRweave_name"
            itemImage="platform:/plugin/org.eclipse.statet.redocs.wikitext.r/icons/obj_16/wikidoc_rweave-file.png"
            configurationClass="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.NewDocTemplateCategoryConfiguration">
      </category>
   </extension>
   
   <extension
         point="org.eclipse.ui.editors">
      <editor
            id="org.eclipse.statet.redocs.editors.TextileRweave"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.TextileRweaveEditor"
            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
            icon="platform:/plugin/org.eclipse.statet.redocs.wikitext.r/icons/obj_16/wikidoc_rweave-file.png"
            name="%editors_TextileRweave_name"
            default="true">
         <contentTypeBinding contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"/>
      </editor>
   </extension>
   
   <extension
         point="org.eclipse.ui.actionSetPartAssociations">
      <actionSetPartAssociation
            targetID="org.eclipse.ui.edit.text.actionSet.presentation">
         <part
               id="org.eclipse.statet.redocs.editors.TextileRweave">
         </part>
      </actionSetPartAssociation>
   </extension>
   
   <extension
         point="org.eclipse.ui.editors.templates">
      <contextType
            id="Textile+Rweave_NewDoc"
            registryId="org.eclipse.statet.redocs.templates.WikitextRweaveDoc"
            class="org.eclipse.statet.redocs.wikitext.r.core.source.WikitextRweaveTemplateContextType">
      </contextType>
      <contextType
            id="Textile+Rweave_Weave:DocDefault"
            registryId="org.eclipse.statet.redocs.templates.WikitextRweaveCodegen"
            class="org.eclipse.statet.redocs.wikitext.r.core.source.WikitextRweaveTemplateContextType">
      </contextType>
      <include
            file="templates/default-doc-templates.xml"
            translations="templates/default-templates.properties">
      </include>
   </extension>
   
   <extension
         point="org.eclipse.ui.newWizards">
      <wizard
            id="org.eclipse.statet.redocs.newWizards.TextileRweaveDocCreation"
            category="org.eclipse.statet.r.newWizards.RCategory"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.NewDocCreationWizard"
            icon="platform:/plugin/org.eclipse.statet.redocs.wikitext.r/icons/tool_16/new-wikidoc_rweave-file.png"
            name="%wizards_NewTextileRweaveDoc_name"
            project="false">
         <description>
            %wizards_NewTextileRweaveDoc_description
         </description>
      </wizard>
   </extension>
   
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension targetID="org.eclipse.statet.base.perspectives.StatetPerspective">
         <newWizardShortcut id="org.eclipse.statet.redocs.newWizards.TextileRweaveDocCreation"/>
      </perspectiveExtension>
   </extension>
   <extension
         point="org.eclipse.ui.navigator.navigatorContent">
      <commonWizard
            type="new"
            menuGroupId="org.eclipse.statet"
            wizardId="org.eclipse.statet.redocs.newWizards.TextileRweaveDocCreation">
         <enablement>
            <or>
               <adapt
                     type="org.eclipse.core.resources.IContainer">
                  <test
                        property="org.eclipse.core.resources.projectNature"
                        value="org.eclipse.statet.r.resourceProjects.R">
                  </test>
               </adapt>
            </or></enablement>
      </commonWizard>
   </extension>
   
   <extension
         point="org.eclipse.compare.contentViewers">
      <viewer
            id="org.eclipse.statet.redocs.compareContentViewers.TextileRweave"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.TextileRweaveContentViewerCreator">
      </viewer>
      <contentTypeBinding
            contentViewerId="org.eclipse.statet.redocs.compareContentViewers.TextileRweave"
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"/>
   </extension>
   <extension
         point="org.eclipse.compare.contentMergeViewers">
      <viewer
            id="org.eclipse.statet.redocs.compareContentViewers.TextileRweaveMergeViewer"
            class="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.TextileRweaveMergeViewerCreator">
      </viewer>
      <contentTypeBinding
            contentMergeViewerId="org.eclipse.statet.redocs.compareContentViewers.TextileRweaveMergeViewer"
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"/>
   </extension>
   
<!-- R Code Launch -->
   <extension
         point="org.eclipse.statet.r.ui.rCodeLaunchContentHandler">
      <contentHandler
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            handler="org.eclipse.statet.internal.redocs.wikitext.r.textile.ui.TextileRweaveSubmitContentHandler">
      </contentHandler>
   </extension>
   
<!-- Document Processing -->
   <extension
         point="org.eclipse.statet.docmlet.DocProcessing">
      <processingType
            contentTypeId="org.eclipse.statet.redocs.contentTypes.TextileRweave"
            configTypeId="org.eclipse.statet.redocs.launchConfigurations.WikitextRweaveDocProcessing"
            managerClass="org.eclipse.statet.redocs.r.ui.processing.RweaveDocProcessingManager">
      </processingType>
   </extension>
   
</plugin>
