eclipse-plugineclipse-pde

How do I use "org.eclipse.debug.ui.launchShortcuts"?


I have written a custom launcher in Eclipse which I can access via the "Run As" and "Debug As" menu options on the toolbar. I also want to be able to launch via the package explorer and via right clicking on the editor of a file to be launched. I followed the tutorial here to add the shortcut but nothing happens, it does not enter my handling code, nor does it complain regarding the configuration of the extension point.

Here is a snippet from my plugin.xml

<extension point="org.eclipse.debug.ui.launchShortcuts">
  <shortcut
        id     = "org.mylauncher.launchCalcShortcut"
        class  = "org.mylauncher.LaunchCalcShortcut"
        description="Execute calculations"
        icon="icons/launch_16_16.png"
        label="Calculate"
        modes="run, debug" >
        <configurationType id="org.mylauncher.launchCalc"/>
  </shortcut>

I have also played with removing the (optional) icon attribute, and have separately validated the path of the icon.

I've been modifying this configuration for hours now with no good result and it is impossible to debug as it is not running in my own code at all.

Thanks.


Solution

  • It seems that the correct answer to this problem is to specify a contextual launch shortcut. Here is my working configuration:

       <extension
         point="org.eclipse.debug.ui.launchShortcuts">
    
      <shortcut
            class="com.xxxx.CalcLaunchShortcut"
            icon="calc.png"
            id="com.xxxx.CalcLaunchShortcut"
            label="Calc"
            modes="run, debug">
        <contextualLaunch>
             <contextLabel mode="run" label="Run Calculator" />
             <contextLabel mode="debug" label="Debug Calculator" />
             <enablement >
               <with variable="selection">
               <count value="1"/>
              <iterate>
                <adapt type="org.eclipse.core.resources.IResource">
                    <and>
                    <test property="org.eclipse.core.resources.name" value="*.calc"/>
                </and>
            </adapt>
              </iterate>
               </with>
           </enablement>
         </contextualLaunch>
      </shortcut>