在Eclipse插件开发中,通过这样做,我已经能够在项目浏览器的右键单击上下文菜单中添加一个项目:
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<command ... >
...
</command>
</menuContribution>
</extension>
但是当我尝试添加到ConsoleView的弹出菜单时,我没有得到结果。
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="popup:org.eclipse.ui.console.ConsoleView">
<command ... >
...
</command>
</menuContribution>
</extension>
我一直在关注alt-shift-F1和alt-shift-F2(Plug-in Spy)的输出,这是我得到org.eclipse.ui.console.ConsoleView
的地方。但我似乎无法进入弹出菜单本身。我可以获得有关各个弹出菜单项(选择全部,清除等)的信息,但我想我只是不知道如何使用Plug-in Spy“挖掘”来获取正确的信息。
编辑:使用下面的答案显示我的工作成果
插件选择Spy有以下内容:
Active Part (Console)
The active view identifier:
org.eclipse.ui.console.ConsoleView
Active Selection
The selection class:
TextSelection
Active Help
The active help context identifiers:
org.eclipse.debug.ui.process_console_context
最后一个条目指向进程控制台,而不是消息控制台。答案中的链接IDebugUIConstants.ID_PROCESS_CONSOLE_TYPE
定义为org.eclipse.debug.ui.ProcessConsoleType
。所以我最终得到了这个,它起作用了:
<menuContribution
locationURI="popup:org.eclipse.debug.ui.ProcessConsoleType.#ContextMenu">
<command
commandId="com.grch.cmgtsdk.merge"
label="Yowza!"
style="push">
</command>
</menuContribution>
答案 0 :(得分:4)
Console视图本身只是不同类型控制台的容器,它没有上下文菜单。您需要确定要添加贡献的特定控制台的菜单ID。
对于文本控制台,菜单ID类似于<console type>.#ContextMenu
。这没有真正记录,找到控制台类型并不简单(你应该查看代码)。例如,控制台类型的流程控制台在IDebugUIConstants.ID_PROCESS_CONSOLE_TYPE
中定义,而对于消息控制台,则为IConsoleConstants.MESSAGE_CONSOLE_TYPE
。