<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.debug.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.debug.ui" id="launchShortcuts" name="Launch Shortcuts"/>
      </appInfo>
      <documentation>
         This extension point provides support for selection sensitive launching.  Extensions register a shortcut which
appears in the run and/or debug cascade menus to launch the workbench selection or active editor.
      </documentation>
   </annotation>

   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="shortcut" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="shortcut">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="label"/>
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="perspective" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="contextualLaunch" minOccurs="0" maxOccurs="1"/>
            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  specifies a unique identifier for this launch shortcut.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="modes" type="string" use="required">
            <annotation>
               <documentation>
                  specifies a comma-separated list of modes this shortcut supports.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  specifies the fully qualified name of a class which implements
&lt;code&gt;org.eclipse.debug.ui.ILaunchShortcut&lt;/code&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.debug.ui.ILaunchShortcut"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="label" type="string" use="required">
            <annotation>
               <documentation>
                  specifies a label used to render this shortcut.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  specifies a plugin-relative path to an image used to render this shortcut. Icon is optional because it is up to other plugins (i.e. Views) to render it.
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="category" type="string">
            <annotation>
               <documentation>
                  specifies the launch configuration type category this shortcut is applicable for. When unspecified, the category is &lt;code&gt;null&lt;/code&gt; (default).
               </documentation>
            </annotation>
         </attribute>
         <attribute name="helpContextId" type="string">
            <annotation>
               <documentation>
                  an optional identifier that specifies the help context to associate with this launch shortcut
               </documentation>
            </annotation>
         </attribute>
         <attribute name="path" type="string">
            <annotation>
               <documentation>
                  an optional menu path used to group launch shortcuts in menus. Launch shortcuts are grouped alphabetically based on the &lt;code&gt;path&lt;/code&gt; attribute, and then sorted alphabetically within groups based on the &lt;code&gt;label&lt;/code&gt; attribute. When unspecified, a shortcut appears in the last group. This attribute was added in the 3.0.1 release.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="perspective">
      <annotation>
         <documentation>
            The &lt;code&gt;perspective&lt;/code&gt; element has been &lt;b&gt;deprecated&lt;/b&gt; in the 3.1 release. The top level Run/Debug/Profile cascade menus now support contextual (selection sensitive) launching, and clients should provide a &lt;code&gt;contextualLaunch&lt;/code&gt; element instead.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of a perspective in which a menu shortcut for this launch shortcut will appear.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="contextualLaunch">
      <annotation>
         <documentation>
            Holds all descriptions for adding shortcuts to the selection sensitive Run/Debug/Profile cascade menus.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="contextLabel" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
         </sequence>
      </complexType>
   </element>

   <element name="contextLabel">
      <annotation>
         <documentation>
            Specify the label for a contextual launch mode.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="mode" use="required">
            <annotation>
               <documentation>
                  specifies a mode from the set {&quot;run&quot;,&quot;debug&quot;,&quot;profile&quot;}
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="run">
                  </enumeration>
                  <enumeration value="debug">
                  </enumeration>
                  <enumeration value="profile">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="label" type="string" use="required">
            <annotation>
               <documentation>
                  specifies the label to appear in the contextual launch menu.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a launch shortcut extension point:

&lt;p&gt;
&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.debug.ui.launchShortcuts&quot;&gt;
  &lt;shortcut
     id=&quot;com.example.ExampleLaunchShortcutId&quot;
     modes=&quot;run,debug&quot;
     class=&quot;com.example.ExampleLaunchShortcutImpl&quot;
     label=&quot;Example Launch Shortcut&quot;
     icon=&quot;icons/examples.gif&quot;&gt;
     &lt;perspective id=&quot;org.eclipse.jdt.ui.JavaPerspective&quot;/&gt;
     &lt;perspective id=&quot;org.eclipse.debug.ui.DebugPerspective&quot;/&gt;
  &lt;/shortcut&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;

In the above example, a launch shortcut will be shown in the run and debug cascade menus with the label
&quot;Example Launch Shortcut&quot;, in the JavaPerspective and the DebugPerspective.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         &lt;p&gt;
Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the 
interface &lt;b&gt;org.eclipse.debug.ui.ILaunchShortcut&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;
Since 3.1, the debug platform registers a command handler for each launch shortcut and its applicable modes to allow clients to define key-bindings for a launch shortcut. The command id for a handler is generated as the launch shortcut id attribute, followed by a dot and the applicable launch mode. For example, the command id for the above launch shortcut example would be &lt;code&gt;com.example.ExampleLaunchShortcutId.debug&lt;/code&gt; for launching in debug mode. A command and key binding could be defined as follows, to bind &quot;&lt;code&gt;ALT-SHIFT-D, E&lt;/code&gt;&quot; to the launch shortcut.
&lt;pre&gt;
   &lt;extension point=&quot;org.eclipse.ui.commands&quot;&gt;
      &lt;command
            name=&quot;Debug Example Launch&quot;
            description=&quot;Debug Example Launch&quot;
            categoryId=&quot;org.eclipse.debug.ui.category.run&quot;
            id=&quot;com.example.ExampleLaunchShortcutId.debug&quot;&gt;
      &lt;/command&gt;
      &lt;keyBinding
            keySequence=&quot;M3+M2+D E&quot;
            contextId=&quot;org.eclipse.ui.globalScope&quot;
            commandId=&quot;com.example.ExampleLaunchShortcutId.debug&quot;
            keyConfigurationId=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;&gt;
      &lt;/keyBinding&gt;
   &lt;/extension&gt;      
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made 
available under the terms of the Common Public License v1.0 which 
accompanies this distribution, and is available at 
&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
