eclipse 插件:快捷方式中不推荐使用透视图

eclipse plugin: perspective deprecated in shortcut

我想修复我的 plugin.xml 文件中的最后一个警告,这一定是我按照一些旧 post 的教程引起的。警告说:不推荐使用元素透视图,在以下扩展中:

<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>

我尝试删除透视元素并在 <contextualLaunch> 中添加 <test>,但我的所有尝试都不奏效。那我该如何解决呢?

顺便说一句。它工作正常。我可以在 运行 中看到我自己的上下文子菜单,如 -> 运行 我的项目。但是只要我把<perspective>元素去掉,不管我在<contextualLaunch>里加什么,子菜单都不会出现。

您的 <contextualLaunch> 元素只会在您选择了单个项目时显示快捷方式。类似下面的内容将显示任何资源:

 <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>