现在在eclipse中,使用eclipse扩展无法扩展其他插件定义的Menu: org.eclipse.ui.menus。
我想在搜索中添加一个菜单项,但不是搜索页面。由于菜单搜索是由org.eclipse.search定义的,我无法添加它。
但我看到JDT和CDT确实在搜索下添加了一些菜单项。有没有人知道它们是如何起作用的?
任何提示都表示赞赏。
答案 0 :(得分:1)
您可以使用org.eclipse.ui.actionSets扩展点
扩展其他插件的菜单这就是JDT如何使用自己的操作扩展搜索菜单。要在给定菜单中执行操作,您必须填写menubarPath
值。例如,Java搜索操作的JDT用以下内容填充:
org.eclipse.search.menu/dialogGroup
我建议导入JDT UI源并查看JDT plugin.xml文件。您需要一个经典的Eclipse SDK,然后在插件视图中右键单击org.eclipse.jdt.ui
插件并选择import as source。
答案 1 :(得分:1)
2012年8月更新,reprogrammer评论,org.eclipse.ui.actionSets
已被弃用:
相反,请使用扩展点
org.eclipse.ui.commands
。
原始答案(2011年8月)
对extension point="org.eclipse.ui.actionSets"
推荐的“menubarPath="org.eclipse.search.menu/dialogGroup"
”操作的actionSet(Manuel Selva)是官方解决方案,与general menu contribution一致。
但要注意一些可能仍会延续搜索菜单贡献的问题,因为illustrated by this thread围绕着({固定的] bug 15684:{{3}} (这是在2009年,希望这个问题已经解决了)
的工作原理是重新定义整个搜索菜单,就像当前在JDT 3.6中使用的变通方法一样:
<extension
point="org.eclipse.ui.actionSets">
<actionSet
label="%JavaSearchActionSet.label"
description="%JavaSearchActionSet.description"
visible="false"
id="org.eclipse.jdt.ui.SearchActionSet">
<!-- see http://bugs.eclipse.org/bugs/show_bug.cgi?id=15684 -->
<!-- Note: The menu (re-) definition has to be here due to bug: -->
<!-- =================================================================== -->
<!-- Search Menu -->
<!-- =================================================================== -->
<menu
label="%searchMenu.label"
path="navigate"
id="org.eclipse.search.menu">
<groupMarker name="internalDialogGroup"/> <!-- not to be used by clients -->
<groupMarker name="dialogGroup"/> <!-- to be used by clients -->
<separator name="fileSearchContextMenuActionsGroup"/> <!-- to be used by clients -->
<separator name="contextMenuActionsGroup"/> <!-- to be used by clients -->
<separator name="occurencesActionsGroup"/> <!-- to be used by clients -->
<separator name="extraSearchGroup"/> <!-- to be used by clients -->
</menu>
<!-- (...) -->
答案 2 :(得分:1)
只要您知道菜单或工具栏的ID,就可以使用org.eclipse.ui.menus
扩展点扩展这些ID。对于搜索菜单,此ID为org.eclipse.search.menu
。如果您要向dialogGroup
添加内容,请使用org.eclipse.search.menu?after=dialogGroup
。