我想修复我的plugin.xml文件中的最后一个警告,因为我按照一些较早的帖子中的教程进行操作,所以一定导致了该警告。警告说:在以下扩展中,不建议使用元素透视图:

<extension
     point="org.eclipse.debug.ui.launchShortcuts">
  <shortcut
        class="my.launch.MyLaunchShortcut"
        icon="icons/my_icon.gif"
        id="my.run.shortcut"
        label="my Workflow"
        modes="run, debug">
     <perspective     <---here is the warning
           id="my.perspective">
     </perspective>
     <configurationType
           id="my.run">
     </configurationType>
     <contextualLaunch>
        <enablement>
           <with
                 variable="selection">
              <count
                    value="1">
              </count>
              <iterate>
                 <or>
                    <instanceof
                          value="org.eclipse.core.resources.IProject">
                    </instanceof>
                 </or>
              </iterate>
           </with>
        </enablement>
     </contextualLaunch>
  </shortcut>




我尝试删除Perspective元素并在<test>中添加<contextualLaunch>,但是我的所有尝试都行不通。那么我该如何解决呢?

顺便说一句一切正常。我可以在“运行方式”->“运行我的项目”中看到自己的上下文子菜单。但是只要删除<perspective>元素,无论我在<contextualLaunch>中添加什么内容,子菜单都不会出现。

最佳答案

您的<contextualLaunch>元素仅在您选择了一个Project时才会显示快捷方式。对于任何资源,都会显示以下内容:



 <contextualLaunch>
    <enablement>
       <with
             variable="selection">
          <count
                value="1">
          </count>
          <iterate>
             <or>
                <instanceof
                      value="org.eclipse.core.resources.IResource">
                </instanceof>
             </or>
          </iterate>
       </with>
    </enablement>
 </contextualLaunch>


您可能还需要指定一个<contextLabel>-以下是Ant插件使用的条目:

<contextualLaunch>
   <enablement>
     <with variable="selection">
       <count value="1"/>
       <iterate>
         <or>
           <instanceof value="org.eclipse.ant.internal.ui.model.AntElementNode"/>
           <test property="org.eclipse.debug.ui.matchesContentType" value="org.eclipse.ant.core.antBuildFile"/>
         </or>
       </iterate>
     </with>
   </enablement>
   <contextLabel
          mode="run"
          label="%AntLaunchShortcut.label"/>
   <contextLabel
          mode="debug"
          label="%AntLaunchShortcut.label"/>
</contextualLaunch>

09-06 03:32