在 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(插件 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>
最佳答案
控制台 View 本身只是不同类型控制台的容器,并且没有上下文菜单。您需要找出要添加贡献的特定控制台的菜单 ID。
对于文本控制台,菜单 ID 类似于 <console type>.#ContextMenu
。这并没有真正记录下来,并且找出控制台类型并不简单(您应该查看代码)。例如 IDebugUIConstants.ID_PROCESS_CONSOLE_TYPE
中定义了进程控制台的控制台类型。而对于消息控制台来说,它是 IConsoleConstants.MESSAGE_CONSOLE_TYPE
.
关于eclipse - 添加到 Eclipse 的控制台 View 弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9368746/