【问题标题】:Adding to Eclipse's console view pop-up menu添加到 Eclipse 的控制台视图弹出菜单
【发布时间】:2012-02-20 21:35:05
【问题描述】:

在 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 “挖掘”以获得正确的信息。

编辑:使用下面的答案显示我的工作结果

Plug-in Selection 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>

【问题讨论】:

    标签: eclipse plugins eclipse-plugin


    【解决方案1】:

    控制台视图本身只是不同类型控制台的容器,它没有上下文菜单。您需要确定要添加贡献的特定控制台的菜单 ID。

    对于文本控制台,菜单 ID 类似于 &lt;console type&gt;.#ContextMenu。这并没有真正记录下来,并且找出 console 类型 并不简单(您应该查看代码)。例如,进程控制台的控制台类型在IDebugUIConstants.ID_PROCESS_CONSOLE_TYPE 中定义,而对于消息控制台,它是IConsoleConstants.MESSAGE_CONSOLE_TYPE

    【讨论】:

      【解决方案2】:

      以上答案帮助我创建了弹出窗口。下面是示例代码:-

      <menuContribution
                 locationURI="popup:org.eclipse.ui.MessageConsole.#ContextMenu">
                 <menu
                       label="My Popup" id="com.abhi.test.popup.menu2">
      
                 <command
                       commandId="com.abhi.test.command1"
                       id="com.abhi.test.popup.command3"
                       style="push">
                 </command>
                 </menu>
           </menuContribution>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-12
        • 2017-07-30
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 2013-10-25
        • 1970-01-01
        相关资源
        最近更新 更多