繁体   English   中英

如何将命令提供给Eclipse中的编辑器上下文菜单

[英]How do you contribute a command to an editor context menu in Eclipse

我想在选择文本时向任何文本编辑器的上下文菜单提供命令。 在“过去的日子”中,我会使用objectContribution和带有“enableFor ='+'”的嵌套操作完成此操作。

如何使用命令而不是动作来做到这一点?

如果我重新回答我的答案“ Eclipse RCP:Actions VS Commands ”,您需要一个Command处理程序。

这个主题似乎总结了你的选择:

  • 一种是常见模式,用于在视图本身中实例化处理程序,并让处理程序只查看视图选择并控制其自己的启用状态。
    处理程序API允许它在启用的更改上触发事件,请参阅org.eclipse.core.commands.AbstractHandler

  • 另一种是创建一个可以选择视图的属性测试器。

IWorkbenchPart p = page.findViewReference("your.id").getPart(false);
if (p!=null) {
  p.getSite().getSelectionProvider().getSelection() ... whatever
}

您的视图将监视其自己的选择更改事件,并为该属性调用org.eclipse.ui.services.IEvaluationService.requestEvaluation(String) (source here )(这将导致使用该属性测试器的所有核心表达式被重新评估) 。
重要的是,简单地更改视图不会导致重新评估(而不是更改启用状态)。

您可以将属性测试器设置为特定于您需要的每个视图,或者创建一个com.example.views.localSelection并使用args指定视图id

我阅读了更多关于命令表达式中可用变量的内容,我接近自己搞清楚了,但失败了。 然后我在eclipse新闻组上问了一个类似的问题,并被引导到正确的方向。 这是一个如何做大部分我正在寻找的例子:

 <command
      commandId="org.marcesher.blogcodeformatter.commands.wikiFormatterCommand"
      tooltip="Format And Copy to Clipboard"
      id="org.marcesher.blogcodeformatter.popup.wikiFormatterCommand">
    <visibleWhen>
       <with variable="selection">
          <instanceof value="org.eclipse.jface.text.ITextSelection"/>
       </with>
    </visibleWhen>

暂无
暂无

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

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