"Run" 菜单位于 Eclipse RCP IDE 项目中的其他菜单之前
"Run" menu is placed before other menus in an Eclipse RCP IDE project
我在 Eclipse 3 中为 RCP 和 RAP 开发人员开发了一种自定义语言 IDE。因此,我尽可能使用 IDE 插件。这周我忙于使用 Eclipse for RCP 和 RAP 开发人员 2021-6 将应用程序迁移到 Eclipse e4(具有兼容层)。到目前为止一切正常。
我无法弄清楚的一件事是如何将“运行”菜单放在我想要的位置。它作为菜单栏中的第一个菜单放置。
顺便说一下,另一个奇怪的事情是,如果我使用 Eclipse 2020-6 而不是 2021-6 作为开发环境,搜索菜单也位于错误的位置。
问题是 运行 和搜索菜单来自 IDE 插件,它们是作为操作实现的,因此我无法根据菜单指定任何顺序。对于所有其他菜单,我定义了适当的 menuContibution
s、命令和处理程序。对于后者,我可以在 plugin.xml 的帮助下通过指定 ?before=
或 ?after=
.
来决定每个菜单的放置位置
我搜索了与添加菜单、重新排序运行g 菜单、将操作与命令和处理程序混合等有关的 Whosebug 问题,但我找不到如何放置运行 我想要的菜单。
我希望可以使用 ID 之类的东西在 plugin.xml 中指定为 ?before=
或 ?after=
,但我认为这不适用于操作。
谁能告诉我如何按所需顺序放置所有菜单?或者在混合动作和命令+处理程序时这根本不可能吗?是否有任何动作包装功能可以让我在 plugin.xml 中的 menuContibution
中指定 ?before=
或 ?after=
?
如果您指的是由 org.eclipse.debug.ui
插件添加的 运行 菜单,这是使用和操作集创建的:
<extension point="org.eclipse.ui.actionSets">
<actionSet
label="%BreakpointActionSet.label"
visible="false"
id="org.eclipse.debug.ui.breakpointActionSet">
<menu
label="%RunMenu.label"
path="additions"
id="org.eclipse.ui.run">
在主菜单的 additions
位置添加 运行 菜单。
org.eclipse.ui.internal.ide.WorkbenchActionBuilder
创建的标准主菜单创建主菜单如下:
@Override
protected void fillMenuBar(IMenuManager menuBar) {
menuBar.add(createFileMenu());
menuBar.add(createEditMenu());
menuBar.add(createNavigateMenu());
menuBar.add(createProjectMenu());
// This line creates the 'additions' position
menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
menuBar.add(createWindowMenu());
menuBar.add(createHelpMenu());
}
感谢greg-449,我终于弄明白了。下面的定义终于解决了我的问题(--> ?before=org.eclipse.ui.run
):
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu?before=org.eclipse.ui.run">
<menu
id="at.boi.tabex.dvl.mainmenu.file"
label="&File">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.edit"
label="&Edit">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.project"
label="&Project">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.tools"
label="&Tools">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.table"
label="&Ta&ble">
</menu>
</menuContribution>
</extension>
我在 Eclipse 3 中为 RCP 和 RAP 开发人员开发了一种自定义语言 IDE。因此,我尽可能使用 IDE 插件。这周我忙于使用 Eclipse for RCP 和 RAP 开发人员 2021-6 将应用程序迁移到 Eclipse e4(具有兼容层)。到目前为止一切正常。
我无法弄清楚的一件事是如何将“运行”菜单放在我想要的位置。它作为菜单栏中的第一个菜单放置。
顺便说一下,另一个奇怪的事情是,如果我使用 Eclipse 2020-6 而不是 2021-6 作为开发环境,搜索菜单也位于错误的位置。
问题是 运行 和搜索菜单来自 IDE 插件,它们是作为操作实现的,因此我无法根据菜单指定任何顺序。对于所有其他菜单,我定义了适当的 menuContibution
s、命令和处理程序。对于后者,我可以在 plugin.xml 的帮助下通过指定 ?before=
或 ?after=
.
我搜索了与添加菜单、重新排序运行g 菜单、将操作与命令和处理程序混合等有关的 Whosebug 问题,但我找不到如何放置运行 我想要的菜单。
我希望可以使用 ID 之类的东西在 plugin.xml 中指定为 ?before=
或 ?after=
,但我认为这不适用于操作。
谁能告诉我如何按所需顺序放置所有菜单?或者在混合动作和命令+处理程序时这根本不可能吗?是否有任何动作包装功能可以让我在 plugin.xml 中的 menuContibution
中指定 ?before=
或 ?after=
?
如果您指的是由 org.eclipse.debug.ui
插件添加的 运行 菜单,这是使用和操作集创建的:
<extension point="org.eclipse.ui.actionSets">
<actionSet
label="%BreakpointActionSet.label"
visible="false"
id="org.eclipse.debug.ui.breakpointActionSet">
<menu
label="%RunMenu.label"
path="additions"
id="org.eclipse.ui.run">
在主菜单的 additions
位置添加 运行 菜单。
org.eclipse.ui.internal.ide.WorkbenchActionBuilder
创建的标准主菜单创建主菜单如下:
@Override
protected void fillMenuBar(IMenuManager menuBar) {
menuBar.add(createFileMenu());
menuBar.add(createEditMenu());
menuBar.add(createNavigateMenu());
menuBar.add(createProjectMenu());
// This line creates the 'additions' position
menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
menuBar.add(createWindowMenu());
menuBar.add(createHelpMenu());
}
感谢greg-449,我终于弄明白了。下面的定义终于解决了我的问题(--> ?before=org.eclipse.ui.run
):
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu?before=org.eclipse.ui.run">
<menu
id="at.boi.tabex.dvl.mainmenu.file"
label="&File">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.edit"
label="&Edit">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.project"
label="&Project">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.tools"
label="&Tools">
</menu>
<menu
id="at.boi.tabex.dvl.mainmenu.table"
label="&Ta&ble">
</menu>
</menuContribution>
</extension>