繁体   English   中英

添加到Eclipse的控制台视图弹出菜单

[英]Adding to Eclipse's console view pop-up menu

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

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

对于文本控制台,菜单ID看起来像<console type>.#ContextMenu 这没有真正记录,找到控制台类型并不简单(你应该查看代码)。 例如,过程控制台的控制台类型中被定义IDebugUIConstants.ID_PROCESS_CONSOLE_TYPE而对于消息控制台它IConsoleConstants.MESSAGE_CONSOLE_TYPE

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM