我已经为RCP和RAP开发人员在Eclipse3中为一种自定义语言开发了一个IDE。因此,只要有可能,只要适用,我就使用IDE插件。这周,我忙于使用Eclipse for RCP和RAP developers 2021-6将应用程序迁移到Eclipse (具有兼容层) e4。到目前为止,一切都运行得很好。
有一件事我搞不懂,那就是我怎么才能把"run“菜单放在我想要的地方。它将作为菜单栏中的第一个菜单放置。
顺便说一句,另一件奇怪的事情是,如果我使用Eclipse 2020-6而不是2021-6作为开发环境,那么搜索菜单也会出现在错误的位置。
问题是,run和search菜单来自IDE插件,它们是作为操作实现的,因此我无法指定菜单的任何顺序。对于所有其他菜单,我定义了适当的menuContibution、命令和处理程序。对于后者,我可以在plugin.xml的帮助下通过指定?before=或?after=来决定每个菜单的放置位置。
我对堆栈溢出问题进行了搜索,这些问题与添加菜单、重新排序菜单、混合操作与命令和处理程序等有关,但我找不到如何将运行菜单放在我想要的位置的解决方案。
我希望有一个类似ID的东西,我可以使用它在plugin.xml中指定为?before=或?after=,但我认为这不适用于操作。
谁能给我一个提示,我怎样才能把所有的菜单都按所需的顺序排列?或者,当混合actions和commands+handlers时,这是不可能的吗?为了让我在plugin.xml的menuContibution中指定?before=或?after=,有没有什么动作包装功能?
发布于 2021-07-08 23:53:47
如果您指的是由org.eclipse.debug.ui插件添加的Run菜单,则这是使用和操作集创建的:
<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处添加Run菜单。
由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());
}发布于 2021-07-09 15:08:51
多亏了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>https://stackoverflow.com/questions/68303514
复制相似问题