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

   <extension-point id="compilers" name="Compilers" schema="schema/compilers.exsd"/>  
   <extension-point id="runners" name="Runners" schema="schema/runners.exsd"/>
   <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="com.wudsn.ide.lng.editor.LanguageEditorPropertyTester"
            id="com.wudsn.ide.lng.editor.LanguageEditorPropertyTester"
            namespace="com.wudsn.ide.lng"
            properties="IsLanguageEditor"
            type="org.eclipse.ui.IEditorPart">
      </propertyTester>
   </extension>

   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer
            class="com.wudsn.ide.lng.preferences.LanguagePreferencesInitializer">
      </initializer>
   </extension>
   <extension
         point="org.eclipse.ui.preferencePages">
      <page
            class="com.wudsn.ide.lng.preferences.LanguagesPreferencesPage"
            id="com.wudsn.ide.lng.preferences.LanguagesPreferencesPage"
            name="%com.wudsn.ide.lng.preferences.LanguagesPreferencesPage.name"/>
   </extension>

   <extension
         point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
      <hyperlinkDetector
            activate="true"
            class="com.wudsn.ide.lng.editor.LanguageHyperlinkDetector"
            id="com.wudsn.ide.lng.editor.LanguageHyperlinkDetector"
            name="%com.wudsn.ide.lng.editor.LanguageHyperlinkDetector.name"
            targetId="com.wudsn.ide.lng.editor.LanguageHyperlinkDetectorEditorTarget">
      </hyperlinkDetector>
   </extension>
   <extension
         point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectorTargets">
      <target
            id="com.wudsn.ide.lng.editor.LanguageHyperlinkDetectorEditorTarget"
            name="%com.wudsn.ide.lng.editor.LanguageHyperlinkDetectorEditorTarget.name">
      </target>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <category
            id="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            name="%com.wudsn.ide.lng.editor.LanguageEditorCommands.name">
      </category>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorOpenSourceFolderCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorOpenSourceFolderCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorOpenOutputFolderCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorOpenOutputFolderCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorCompileCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorCompileCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunWithCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunWithCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorCompilerHelpCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorCompilerHelpCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommand.name">
      </command>
      <command
            categoryId="com.wudsn.ide.lng.editor.LanguageEditorCommands"
            id="com.wudsn.ide.lng.editor.LanguageEditorToggleCommentCommand"
            name="%com.wudsn.ide.lng.editor.LanguageEditorToggleCommentCommand.name">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorOpenFolderCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenSourceFolderCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <instanceof
                     value="com.wudsn.ide.lng.editor.ILanguageEditor">
               </instanceof>
            </with></activeWhen>
      </handler>
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorOpenFolderCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenOutputFolderCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <instanceof
                     value="com.wudsn.ide.lng.editor.ILanguageEditor">
               </instanceof>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorCompileCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <test
                     property="com.wudsn.ide.lng.IsLanguageEditor"
                     value="true">
               </test>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorCompileCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <test
                     property="com.wudsn.ide.lng.IsLanguageEditor"
                     value="true">
               </test>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorCompileCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunWithCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <test
                     property="com.wudsn.ide.lng.IsLanguageEditor"
                     value="true">
               </test>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorCompilerHelpCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorCompilerHelpCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <test
                     property="com.wudsn.ide.lng.IsLanguageEditor"
                     value="true">
               </test>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommandHandler"
            commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommand">
         <activeWhen>
            <with
                  variable="activeEditor">
               <instanceof
                     value="com.wudsn.ide.lng.editor.ILanguageEditor">
               </instanceof>
            </with>
         </activeWhen>
      </handler>
   </extension>
   <extension
         point="org.eclipse.ui.bindings">
      <key
            commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileCommand"
            contextId="org.eclipse.ui.contexts.window"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+8">
      </key>
      <key
            commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand"
            contextId="org.eclipse.ui.contexts.window"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+9">
      </key>
      <key
            commandId="com.wudsn.ide.lng.editor.LanguageEditorToggleCommentCommand"
            contextId="org.eclipse.ui.textEditorScope"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+7">
      </key>
      <key
            commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommand"
            contextId="org.eclipse.ui.textEditorScope"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="F3">
      </key>
      <key
            commandId="org.eclipse.debug.ui.commands.ToggleBreakpoint"
            contextId="org.eclipse.ui.textEditorScope"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+B">
      </key>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
         <menu
               id="com.wudsn.ide.lng.editor.LanguageEditorCompilerMenu"
               label="%com.wudsn.ide.lng.editor.LanguageEditorCompilerMenu.label"
               mnemonic="%com.wudsn.ide.lng.editor.LanguageEditorCompilerMenu.mnemonic">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="activeEditor">
                  <test
                        property="com.wudsn.ide.lng.IsLanguageEditor"
                        value="true">
                  </test>
               </with>
            </visibleWhen>
            <command
                  commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenSourceFolderCommand"
                  mnemonic="%com.wudsn.ide.lng.editor.LanguageEditorOpenSourceFolderCommand.mnemonic">
            </command>
            <command
                  commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenOutputFolderCommand"
                  mnemonic="%com.wudsn.ide.lng.editor.LanguageEditorOpenOutputFolderCommand.mnemonic">
            </command>
            <separator
                  name="com.wudsn.ide.lng.editor.LanguageEditorCompilerMenuSeparator1"
                  visible="true">
            </separator>
            <command
                  commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileCommand"
                  id="com.wudsn.ide.lng.editor.LanguageEditorCompileCommand"
                  mnemonic="%com.wudsn.ide.lng.editor.LanguageEditorCompileCommand.mnemonic">
            </command>
            <command
                  commandId="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand"
                  id="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand"
                  mnemonic="%com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand.mnemonic">
            </command>
            <separator
                  name="com.wudsn.ide.lng.editor.LanguageEditorCompilerMenuSeparator2"
                  visible="true">
            </separator>
            <command
                  commandId="com.wudsn.ide.lng.editor.LanguageEditorCompilerHelpCommand"
                  mnemonic="%com.wudsn.ide.lng.editor.LanguageEditorCompilerHelpCommand.mnemonic">
            </command>
         </menu>
      </menuContribution>
      
      <menuContribution
            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
            label="%com.wudsn.ide.lng.editor.LanguageEditorCompilerMenu.label"
         <toolbar
               id="com.wudsn.ide.lng.editor.LanguageEditorAssemblerToolbar"
               label="%com.wudsn.ide.lng.editor.LanguageEditorAssemblerToolbar.label">
            <dynamic
                  class="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommandMenu"
                  id="com.wudsn.ide.lng.editor.LanguageEditorAssembleAndRunCommandMenu">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </dynamic>
         </toolbar>
         <toolbar
               id="com.wudsn.ide.lng.editor.LanguageEditorToolbar"
               label="%com.wudsn.ide.lng.editor.LanguageEditorCompilerToolbar.label">
            <dynamic
                  class="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommandMenu"
                  id="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommandMenu">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </dynamic>
         </toolbar>

      </menuContribution>
      
      <menuContribution
            locationURI="popup:#TextEditorContext?after=com.wudsn.ide.base.editor.CommonOpenFolderCommand">
         <command
               commandId="com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommand"
               id="com.wudsn.ide.lng.editor.LanguageEditorOpenDeclarationCommand"
               style="push">
         </command>
      </menuContribution>
      <menuContribution
            locationURI="popup:#TextEditorContext?after=com.wudsn.ide.base.editor.text.TextEditorSortMenu">
         <command
               commandId="com.wudsn.ide.lng.editor.LanguageEditorToggleCommentCommand"
               id="com.wudsn.ide.lng.editor.LanguageEditorToggleCommentCommand"
               style="push">
         </command>
         <command
               commandId="org.eclipse.debug.ui.commands.ToggleBreakpoint"
               id="org.eclipse.debug.ui.commands.ToggleBreakpoint"
               style="push">
         </command>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.help.toc">
      <tocProvider
            class="com.wudsn.ide.lng.help.LanguageTocProvider">
      </tocProvider>
      <tocIcon
            id="pdf"
            openIcon="icons/help-topic-pdf-small.png">
      </tocIcon>
   </extension>
   <extension
         point="org.eclipse.help.contentProducer">
      <contentProducer
            producer="com.wudsn.ide.lng.help.LanguageHelpContentProducer">
      </contentProducer>
   </extension>
    <extension
          name="Compiler Action Set for Toolbar"
          point="org.eclipse.ui.actionSets">
    <actionSet
          id="com.wudsn.ide.lng.editor.LanguageEditorCompilerActionSet"
          label="%com.wudsn.ide.lng.editor.LanguageEditorCompilerMenu.label"
          visible="true">
       <action
             class="com.wudsn.ide.lng.editor.LanguageEditorCompileCommandDelegate"
             definitionId="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand"
             icon="icons/hardware-generic-16x16.png"
             id="com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunAction"
             label="%com.wudsn.ide.lng.editor.LanguageEditorCompileAndRunCommand.name"
             style="pulldown"
             toolbarPath="com.wudsn.ide.lng.editor.LanguageEditorToolbar">
       </action>
    </actionSet>
 </extension>
 <extension
       point="com.wudsn.ide.lng.runners">
    <runner
          id="default_application"
          hardware="GENERIC"
          name="%com.wudsn.ide.lng.runner.DefaultApplication.name">
    </runner>
    <runner
          defaultCommandLine="${outputFilePath}"
          hardware="GENERIC"
          id="user_defined_application"
          name="%com.wudsn.ide.lng.runner.UserDefinedApplication.name">
    </runner>
 </extension>
 <extension
       point="org.eclipse.debug.core.breakpoints">
    <breakpoint
          class="com.wudsn.ide.lng.breakpoint.LanguageBreakpoint"
          id="languageBreakpoint"
          markerType="org.eclipse.debug.core.lineBreakpointMarker"
          name="%com.wudsn.ide.lng.breakpoint.LanguageBreakpoint.name">
    </breakpoint>
 </extension>
 <extension
       point="org.eclipse.debug.ui.toggleBreakpointsTargetFactories">
    <toggleTargetFactory
          class="com.wudsn.ide.lng.breakpoint.LanguageBreakpointAdapterFactory"
          id="com.wudsn.ide.lng.breakpoint.LanguageBreakpointAdapterFactory">
    </toggleTargetFactory>
 </extension>
 <extension
       point="org.eclipse.debug.ui.debugModelPresentations">
    <debugModelPresentation
          class="com.wudsn.ide.lng.breakpoint.LanguageBreakpoinDebugModelPresentation"
          id="com.wudsn.ide.lng">
    </debugModelPresentation>
 </extension>
 


 <extension point="org.eclipse.ui.popupMenus">
   <viewerContribution
         id="RulerPopupActions"
         targetID="#TextRulerContext">
       <action
             class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
             definitionId="org.eclipse.debug.ui.commands.ToggleBreakpoint"
             id="org.eclipse.debug.ui.commands.ToggleBreakpoint"
                label="%com.wudsn.ide.lng.editor.LanguageEditorToggleBreakpointCommand.name"
             menubarPath="additions">
       </action>
       <action
             class="org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
             id="com.wudsn.ide.lng.editor.LanguageEditorRulerEnableDisableBreakpointAction"
             label="Enable/Disable Breakpoint (label is overridden by action at runtime)"
             menubarPath="additions">
       </action>
   </viewerContribution>
 </extension>
 <extension
       point="org.eclipse.ui.preferenceTransfer">
    <transfer
          icon="icons/hardware-generic-16x16.png"
          id="com.wudsn.ide.lng.preferences.LanguagesPreferences"
          name="%com.wudsn.ide.lng.preferences.LanguagesPreferences.name">
       <mapping
             scope="instance">
          <entry
                node="com.wudsn.ide.lng">
          </entry>
       </mapping>
    </transfer>
 </extension>
 <extension
       point="org.eclipse.ui.views">
    <view
          category="org.eclipse.debug.ui"
          class="com.wudsn.ide.lng.symbol.CompilerSymbolsView"
          icon="icons/outline-label-definition-16x16.png"
          id="com.wudsn.ide.lng.symbol.CompilerSymbolsView"
          name="%com.wudsn.ide.lng.symbol.CompilerSymbolsView.name"
          restorable="true">
    </view>
 </extension> 

</plugin>
