是否可以隐藏/删除Eclipse中的任意上下文菜单项(3.6)

Vil*_*tas 20 eclipse eclipse-plugin contextmenu eclipse-3.6

我的问题可以分为三个:

是否可以通过以下方式隐藏/删除Eclipse(3.6)中的任意上下文菜单项...

  1. 标准UI?
  2. 一些现有的插件?
  3. 自定义插件?

我没有找到通过方法1和方法2来实现这一目标的方法.如果唯一的选择是创建自定义插件,那么是否有人可以将我推向正确的方向从哪里开始(我有一些Java经验,但不是在Eclipse插件中插件).

Von*_*onC 20

您可以通过标准GUI隐藏菜单或菜单条目:请参阅帮助

隐藏菜单项或工具栏按钮:

  • 切换到要配置的透视图.
  • 选择 Window > Customize Perspective....
  • 打开"菜单可见性"或"工具栏可见性"选项卡.
  • 找到要隐藏的项目.
  • 取消选中该项旁边的复选框.取消选中菜单以隐藏其所有子项.
  • 单击"确定"以使更改生效.

但是,这将隐藏所有菜单(上下文中或不上下文中)的条目.
所以它可能不像你想要的那样精细.


您也可以通过插件尝试它(另请参阅菜单贡献)

第一步是在Eclipse中使用扩展的非常标准.

  • 打开plugin.xml文件并添加org.eclipse.ui.activities extension.
  • 然后创建一个活动节点并为其提供唯一的ID.
  • 然后创建一个activityPatternBinding节点并使用该活动的唯一ID来查找活动节点的模式节点.
    activityPatternBinding节点要求您为要隐藏的UI元素的ID字符串提供正则表达式.

问题是,似乎至少有3种方式将菜单项和工具栏按钮添加到UI.

  • 第一种方法是通过较新的Command/Menu Extensions.
  • 第二种方式是通过旧的ActionSet扩展.
  • 然后还有其他UI元素似乎硬编码到Workbench中,没有ID字符串,无法使用Activities Extension隐藏.幸运的是,第三种UI元素很少.

考虑到你在谈论最新的Eclipse,我只会复制第一种方式:

1 /使用插件间谍

第一种方法是使用Plug-In Spy.
alt- shift- F2并单击要隐藏的菜单项或工具栏按钮.
如果在"活动动作定义标识符"标题下有一个ID字符串,那么您很幸运.
已使用命令扩展添加此项,您可以使用此ID作为活动扩展的模式参数.
但并非所有使用命令扩展添加的项目都将其ID字符串呈现给插件间谍.

作为旁注,ID字符串是句点分隔的.
例如,按钮的ID可能是" org.eclipse.ui.navigate.backwardHistory".
正则表达式使用句点代表任何字符.幸运的是,用作外卡的时间段与实际时期字符相匹配,因此如果您不愿意,则无​​需逃避它们.我发现如果它们没有被转义就会让它更容易阅读,并且它不太可能导致任何模糊的匹配.