You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse插件开发:如何在Project Explorer中排序上下文菜单?

Eclipse插件Project Explorer向导菜单排序解决方案

下面是几种不用修改向导名称就能调整菜单顺序的可行方法:

  • 通过Navigator Viewer扩展点配置排序规则
    不用改动org.eclipse.ui.newWizards的原有配置,在其中一个插件的plugin.xml里添加org.eclipse.ui.navigator.viewer扩展点,针对Project Explorer的固定viewer ID(org.eclipse.ui.navigator.ProjectExplorer),绑定两个项目的navigatorContent并设置排序优先级。高优先级的内容提供商对应的向导会排在前面。
    示例配置:

    <extension
          point="org.eclipse.ui.navigator.viewer">
       <viewerContentBinding
             viewerId="org.eclipse.ui.navigator.ProjectExplorer">
          <includes>
             <contentExtension
                   pattern="com.business.a.navigatorContent">
             </contentExtension>
             <contentExtension
                   pattern="com.business.b.navigatorContent">
             </contentExtension>
          </includes>
          <sortConfiguration
                contentProviderId="com.business.a.navigatorContent"
                priority="high">
          </sortConfiguration>
          <sortConfiguration
                contentProviderId="com.business.b.navigatorContent"
                priority="low">
          </sortConfiguration>
       </viewerContentBinding>
    </extension>
    
  • 给向导设置自定义分类并排序
    在两个插件的newWizards配置里,把向导归到同一个自定义分类下,给分类设置priority控制分类在菜单中的位置,再给每个向导加order属性控制分类内的顺序。
    示例:
    com.business.a的plugin.xml:

    <extension
          point="org.eclipse.ui.newWizards">
       <category
             id="com.business.custom.category"
             name="业务向导"
             priority="1">
       </category>
       <wizard
             category="com.business.custom.category"
             id="com.business.a.wizard"
             name="A业务向导"
             order="1">
          <!-- 原有向导配置 -->
       </wizard>
    </extension>
    

    com.business.b的plugin.xml:

    <extension
          point="org.eclipse.ui.newWizards">
       <wizard
             category="com.business.custom.category"
             id="com.business.b.wizard"
             name="B业务向导"
             order="2">
          <!-- 原有向导配置 -->
       </wizard>
    </extension>
    
  • 自定义菜单绕过默认排序
    直接用org.eclipse.ui.menus扩展点给Project Explorer右键菜单加自定义菜单项,绑定对应的向导命令,通过order属性直接指定每个菜单项的位置。这种方式完全不受默认排序逻辑影响。
    示例:

    <extension
          point="org.eclipse.ui.menus">
       <menuContribution
             locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu">
          <command
                commandId="com.business.a.newWizardCommand"
                label="A业务向导"
                order="10">
             <visibleWhen>
                <with variable="activeMenuSelection">
                   <instanceof value="org.eclipse.core.resources.IProject"/>
                </with>
             </visibleWhen>
          </command>
          <command
                commandId="com.business.b.newWizardCommand"
                label="B业务向导"
                order="20">
             <visibleWhen>
                <with variable="activeMenuSelection">
                   <instanceof value="org.eclipse.core.resources.IProject"/>
                </with>
             </visibleWhen>
          </command>
       </menuContribution>
    </extension>
    

    注意这里需要给每个向导创建对应的command,关联到向导的执行逻辑。

内容的提问来源于stack exchange,提问作者user26267915

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:53:11