<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
 #=============================================================================#
 # Copyright (c) 2011, 2021 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>

<!-- debug model -->
   <extension
         point="org.eclipse.debug.ui.debugModelPresentations">
      <debugModelPresentation
            id="org.eclipse.statet.r.debugModels.R"
            class="org.eclipse.statet.internal.r.debug.ui.RDebugModelPresentation">
      </debugModelPresentation>
   </extension>
   
   <extension
         point="org.eclipse.debug.ui.detailPaneFactories">
      <detailFactories
            id="org.eclipse.statet.r.debugDetailPane.RBreakpointDetailPaneFactory"
            class="org.eclipse.statet.internal.r.debug.ui.breakpoints.BreakpointDetailFactory">
         <enablement>
            <with
                  variable="selection">
               <count
                     value="1">
               </count>
               <iterate>
                  <or>
                     <instanceof
                           value="org.eclipse.statet.r.debug.core.breakpoints.RBreakpoint">
                     </instanceof>
                  </or>
               </iterate>
            </with>
         </enablement>
      </detailFactories>
   </extension>
   <extension
         point="org.eclipse.debug.ui.sourceContainerPresentations">
      <!-- platform uri not suppored -->
      <sourceContainerPresentation
            id="org.eclipse.statet.r.debugSourceContainerPresentations.REnvLibraryPathPresentation"
            containerTypeID="org.eclipse.statet.r.debugSourceContainers.REnvLibraryPathType"
            icon="icons/obj_16/r_env.png">
      </sourceContainerPresentation>
      <sourceContainerPresentation
            id="org.eclipse.statet.r.debugSourceContainerPresentations.RLibraryPresentation"
            containerTypeID="org.eclipse.statet.r.debugSourceContainers.RLibraryType"
            browserClass="org.eclipse.statet.internal.r.debug.ui.sourcelookup.RLibrarySourceContainerBrowser"
            icon="icons/obj_16/r_library.png">
      </sourceContainerPresentation>
      <sourceContainerPresentation
            id="org.eclipse.statet.r.debugSourceContainerPresentations.AllRProjectsPresentation"
            containerTypeID="org.eclipse.statet.r.debugSourceContainers.AllRProjectsType"
            browserClass="org.eclipse.statet.internal.r.debug.ui.sourcelookup.AllRProjectsSourceContainerBrowser"
            icon="icons/obj_16/r_project.png">
      </sourceContainerPresentation>
      <sourceContainerPresentation
            id="org.eclipse.statet.r.debugSourceContainerPresentations.RProjectPresentation"
            containerTypeID="org.eclipse.statet.r.debugSourceContainers.RProjectType"
            browserClass="org.eclipse.statet.internal.r.debug.ui.sourcelookup.RProjectSourceContainerBrowser"
            icon="icons/obj_16/r_project.png">
      </sourceContainerPresentation>
   </extension>
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.eclipse.statet.r.debug.core.sourcelookup.RSourceLookupMatch"
            class="org.eclipse.statet.internal.r.debug.ui.sourcelookup.RSourceLookupAdapterFactory">
         <adapter
               type="org.eclipse.ui.model.IWorkbenchAdapter"/>
         <adapter
               type="org.eclipse.ui.IContributorResourceAdapter"/>
      </factory>
      <factory
            adaptableType="org.eclipse.statet.r.debug.core.RVariable"
            class="org.eclipse.statet.internal.r.debug.ui.variables.VariableUIAdapterFactory">
         <adapter
               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider"/>
         <adapter
               type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementEditor"/>
         <adapter
               type="org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapter"/>
      </factory>
   </extension>
   
   <extension
         point="org.eclipse.core.expressions.definitions">
      <definition
            id="org.eclipse.statet.r.expressions.isSelection.RDebugVariable">
         <with
               variable="selection">
            <count
                  value="1"/>
            <iterate>
               <instanceof
                     value="org.eclipse.statet.r.debug.core.RVariable">
               </instanceof>
            </iterate>
         </with>
      </definition>
      <definition
            id="org.eclipse.statet.r.expressions.isSelection.RDebugElementVariable">
         <with
               variable="selection">
            <count
                  value="1"/>
            <iterate>
               <instanceof
                     value="org.eclipse.statet.r.debug.core.RElementVariable"/>
            </iterate>
         </with>
      </definition>
      <definition
            id="org.eclipse.statet.r.expressions.isSelection.RDebugVariables">
         <with 
               variable="selection">
            <count
                  value="+"/>
            <iterate>
               <instanceof
                     value="org.eclipse.statet.r.debug.core.RVariable">
               </instanceof>
            </iterate>
         </with>
      </definition>
      <definition
            id="org.eclipse.statet.r.expressions.isSelection.RDebugExpression">
         <with
               variable="selection">
            <count
                  value="1"/>
            <iterate>
               <and>
                  <instanceof
                        value="org.eclipse.debug.core.model.IExpression"/>
                  <test property="org.eclipse.statet.ecommons.debug.equalsModelIdentifier"
                        value="org.eclipse.statet.r.debugModels.R"/>
               </and>
            </iterate>
         </with>
      </definition>
      <definition
            id="org.eclipse.statet.r.expressions.isSelection.RDebugExpressionWithElementVariable">
         <with
               variable="selection">
            <count
                  value="1"/>
            <iterate>
               <and>
                  <instanceof
                        value="org.eclipse.debug.core.model.IExpression"/>
                  <test property="org.eclipse.statet.ecommons.debug.equalsModelIdentifier"
                        value="org.eclipse.statet.r.debugModels.R"/>
                  <adapt
                        type="org.eclipse.statet.r.debug.core.RVariable">
                     <instanceof
                           value="org.eclipse.statet.r.debug.core.RElementVariable"/>
                  </adapt>
               </and>
            </iterate>
         </with>
      </definition>
   </extension>
   
<!-- breakpoint actions --> 
   <extension
         point="org.eclipse.ui.commands">
      <command
            id="org.eclipse.statet.r.commands.AddExceptionBreakpoint"
            categoryId="org.eclipse.debug.ui.category.run"
            name="%commands_AddExceptionBreakpoint_label"
            description="%commands_AddExceptionBreakpoint_description"
            defaultHandler="org.eclipse.statet.internal.r.debug.ui.actions.AddExceptionBreakpointHandler">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.commandImages">
      <image
            commandId="org.eclipse.statet.r.commands.AddExceptionBreakpoint"
            icon="icons/obj_16/r_exception.png"/>
   </extension>
   
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:org.eclipse.ui.run?endof=breakpointGroup">
         <separator
               name="Debug.R.Breakpoints">
         </separator>
         <command
               commandId="org.eclipse.statet.r.commands.AddExceptionBreakpoint"
               label="%menus_AddExceptionBreakpoint_label">
            <visibleWhen
                  checkEnabled="false">
               <or>
                  <with
                        variable="debugContext">
                     <count value="+"/>
                  </with>
                  <with
                        variable="activePartId">
                     <equals
                           value="org.eclipse.debug.ui.BreakpointView"/>
                  </with>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isEditorActive.RSourceEditor"/>
               </or>
            </visibleWhen>
         </command>
      </menuContribution>
   </extension>
   
<!-- variable/expression actions --> 
   <extension
         point="org.eclipse.ui.commands">
      <command
            id="org.eclipse.statet.r.commands.InspectAttributes"
            categoryId="org.eclipse.debug.ui.category.run"
            name="%commands_InspectAttributes_label"
            description="%commands_InspectAttributes_description">
      </command>
   </extension>
   
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            commandId="org.eclipse.statet.workbench.commands.CopyElementName"
            class="org.eclipse.statet.internal.r.debug.ui.actions.CopyQualifiedNameHandler">
         <activeWhen>
            <reference
                  definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariables"/>
         </activeWhen>
      </handler>
      <handler
            commandId="org.eclipse.jdt.ui.edit.text.java.open.editor"
            class="org.eclipse.statet.internal.r.debug.ui.actions.OpenInEditorHandler">
         <activeWhen>
            <reference
                  definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariable"/>
         </activeWhen>
      </handler>
      <handler
            commandId="org.eclipse.jdt.debug.ui.commands.Watch"
            class="org.eclipse.statet.internal.r.debug.ui.actions.WatchHandler">
         <activeWhen>
            <or>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariables"/>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isPartActive.RSourceEditor"/>
            </or>
         </activeWhen>
      </handler>
      <handler
            commandId="org.eclipse.jdt.debug.ui.commands.Inspect"
            class="org.eclipse.statet.internal.r.debug.ui.actions.InspectHandler">
         <activeWhen>
            <or>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariable"/>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugExpression"/>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isPartActive.RSourceEditor"/>
            </or>
         </activeWhen>
         <enabledWhen>
            <and>
               <with
                     variable="debugContext">
                  <count value="+"/>
               </with>
               <or>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugElementVariable"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isPartActive.RSourceEditor"/>
               </or>
            </and>
         </enabledWhen>
      </handler>
      <handler
            commandId="org.eclipse.statet.r.commands.InspectAttributes"
            class="org.eclipse.statet.internal.r.debug.ui.actions.InspectAttributesHandler">
         <activeWhen>
            <or>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariable"/>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugExpression"/>
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isPartActive.RSourceEditor"/>
            </or>
         </activeWhen>
         <enabledWhen>
            <and>
               <with
                     variable="debugContext">
                  <count value="+"/>
               </with>
               <or>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugElementVariable"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugExpressionWithElementVariable"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isPartActive.RSourceEditor"/>
               </or>
            </and>
         </enabledWhen>
      </handler>
   </extension>
   
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any?after=variableGroup">
         <command
               commandId="org.eclipse.statet.workbench.commands.CopyElementName"
               label="%menus_CopyQualifiedName_label">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariables"/>
            </visibleWhen>
         </command>
      </menuContribution>
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any?after=additions">
         <separator
               name="debug.inspect"
               visible="true">
         </separator>
         <command
               commandId="org.eclipse.jdt.debug.ui.commands.Inspect"
               label="%menus_Inspect_label">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugElementVariable"/>
            </visibleWhen>
         </command>
         <command
               commandId="org.eclipse.statet.r.commands.InspectAttributes"
               label="%menus_InspectAttributes_label">
            <visibleWhen
                  checkEnabled="false">
               <or>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugElementVariable"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugExpressionWithElementVariable"/>
               </or>
            </visibleWhen>
         </command>
      </menuContribution>
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any?after=emptyNavigationGroup">
         <command
               commandId="org.eclipse.jdt.ui.edit.text.java.open.editor"
               label="%menus_OpenInDataEditor_label">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariable"/>
            </visibleWhen>
         </command>
      </menuContribution>
      
      <menuContribution
            locationURI="menu:org.eclipse.ui.run?endof=Debug.R.Breakpoints">
         <separator
               name="Debug.R.Inspect"
               visible="true">
         </separator>
         <command
                commandId="org.eclipse.jdt.debug.ui.commands.Inspect">
             <visibleWhen
                   checkEnabled="false">
                <or>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariables"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugExpression"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isEditorActive.RSourceEditor"/>
                </or>
             </visibleWhen>
         </command>
         <command
                commandId="org.eclipse.statet.r.commands.InspectAttributes"
                label="%menus_InspectAttributes_label">
             <visibleWhen
                   checkEnabled="false">
                <or>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariable"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugExpression"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isEditorActive.RSourceEditor"/>
                </or>
             </visibleWhen>
         </command>
         <command
                commandId="org.eclipse.jdt.debug.ui.commands.Watch"
                label="%menus_Watch_label">
             <visibleWhen
                   checkEnabled="false">
                <or>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isSelection.RDebugVariables"/>
                  <reference
                        definitionId="org.eclipse.statet.r.expressions.isEditorActive.RSourceEditor"/>
                </or>
             </visibleWhen>
         </command>
      </menuContribution>
   </extension>

<!-- editor contributions -->
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.eclipse.statet.internal.r.ui.editors.REditor"
            class="org.eclipse.statet.internal.r.debug.ui.actions.RetargettableActionAdapterFactory">
         <adapter
               type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
      </factory>
   </extension>
   
   <extension
         point="org.eclipse.debug.core.launchDelegates">
      <launchDelegate
            id="org.eclipse.statet.r.launchDelegates.RConsoleDebug"
            type="org.eclipse.statet.r.launchConfigurations.RConsole"
            modes="debug"
            delegate="org.eclipse.statet.internal.r.debug.ui.lauching.RConsoleDebugLaunchDelegate"
            sourceLocatorId="org.eclipse.statet.r.debugSourceLocators.RSourceLocator"
            sourcePathComputerId="org.eclipse.statet.r.debugSourcePathComputers.RSourcePathComputer">
      </launchDelegate>
      <launchDelegate
            id="org.eclipse.statet.r.launchDelegates.RRemoteConsoleDebug"
            type="org.eclipse.statet.r.launchConfigurations.RRemoteConsole"
            modes="debug"
            delegate="org.eclipse.statet.internal.r.debug.ui.lauching.RRemoteConsoleDebugLaunchDelegate"
            sourceLocatorId="org.eclipse.statet.r.debugSourceLocators.RSourceLocator"
            sourcePathComputerId="org.eclipse.statet.r.debugSourcePathComputers.RSourcePathComputer">
      </launchDelegate>
   </extension>
   <extension
         point="org.eclipse.ui.editors.markerUpdaters">
      <updater
            id="org.eclipse.statet.r.resourceMarkerUpdaters.RBreakpoint"
            markerType="org.eclipse.statet.r.resourceMarkers.RBreakpoint"
            class="org.eclipse.statet.internal.r.debug.ui.breakpoints.BreakpointMarkerUpdater">
      </updater>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            commandId="org.eclipse.jdt.debug.ui.commands.StepIntoSelection"
            class="org.eclipse.statet.internal.r.debug.ui.actions.StepIntoSelectionHandler">
         <activeWhen>
            <reference
                  definitionId="org.eclipse.statet.r.expressions.isEditorActive.RSourceEditor"/>
         </activeWhen>
         <enabledWhen>
            <with
                  variable="org.eclipse.statet.activeTool">
               <test
                     property="org.eclipse.statet.nico.isMainType"
                     value="R"
                     forcePluginActivation="false">
               </test>
            </with>
         </enabledWhen>
      </handler>
   </extension>
   <extension
         point="org.eclipse.ui.editorActions">
      <editorContribution
            id="org.eclipse.statet.r.legacy.REditorRulerDebugActions"
            targetID="org.eclipse.statet.r.editors.R">
         <action
               id="org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction"
               actionID="RulerDoubleClick"
               class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
               label="ToggleBreakpoint">
         </action>
      </editorContribution>
   </extension>
   <extension
         point="org.eclipse.ui.popupMenus">
      <viewerContribution
            id="org.eclipse.statet.r.legacy.REditorRulerMenuDebugContribution"
            targetID="org.eclipse.statet.r.menus.REditorRulerMenu">
         <action
               id=".EnableDisableBreakpoint"
               class="org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
               label="%menus_EnableDisableBreakpoint_label"
               menubarPath="debug">
         </action>
         <action
               id=".ToggleBreakpoint"
               class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
               definitionId="org.eclipse.debug.ui.commands.ToggleBreakpoint"
               icon="icons/obj_16/r_breakpoint.png"
               label="%menus_ToggleBreakpoint_label"
               menubarPath="debug">
         </action>
      </viewerContribution>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.statet.r.menus.REditorContextMenu?before=additions">
         <separator
               name="Debug.R"
               visible="true">
         </separator>
         <command
                commandId="org.eclipse.jdt.debug.ui.commands.Inspect">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="debugContext">
                  <count value="+"/>
               </with>
            </visibleWhen>
         </command>
         <command
                commandId="org.eclipse.statet.r.commands.InspectAttributes">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="debugContext">
                  <count value="+"/>
               </with>
            </visibleWhen>
         </command>
         <command
                commandId="org.eclipse.jdt.debug.ui.commands.Watch">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="debugContext">
                  <count value="+"/>
               </with>
            </visibleWhen>
         </command>
         <separator
               name="Debug.R.additions"
               visible="true">
         </separator>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
      <hyperlinkDetector
            id="org.eclipse.statet.r.hyperlinks.StepIntoSelectionDetector"
            targetId="org.eclipse.statet.r.editorHyperlinks.REditorTarget"
            class="org.eclipse.statet.internal.r.debug.ui.actions.StepIntoSelectionHyperlinkDetector"
            name="%hyperlinks_StepIntoSelection_name"
            activate="false"
            modifierKeys="M1+M3">
      </hyperlinkDetector>
   </extension>
   <extension
         point="org.eclipse.statet.ltk.AdvancedInfoHover">
      <hover
            id="org.eclipse.statet.r.infoHovers.RDebug"
            contentTypeId="org.eclipse.statet.r.contentTypes.R"
            name="Element Info from R Console"
            class="org.eclipse.statet.internal.r.debug.ui.actions.RDebugHover">
      </hover>
   </extension>
   
</plugin>
