eclipse - 添加到 Eclipse 的控制台 View 弹出菜单

标签 eclipse plugins eclipse-plugin

在 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/

相关文章:

html - Facebook Like Box 集成

ruby-on-rails - 我如何让 Rails 从插件加载中排除一些 bundle 的 gem?

java - 从 rcp 插件创建 exe 时检测到循环依赖关系

IBM RAD 中的 Eclipse 插件管理

java - 在eclipse下通过Sysdeo获取 "specified DSN contains an architecture mismatch between the Driver and Application"运行Tomcat

java - Maven 两次加载 Servlet API

java - 是否有 Checkstyle/PMD 规则 "Non-abstract classes should not be named AbstractXXX"?

java - 如何在 Eclipse 中使用 jardesc?

jsf - JSF 是否可以作为 OSGi (Equinox) 包使用?

java - 以随机顺序显示多项选择题