【问题标题】:Eclipse plug-in regardless of perspectiveEclipse 插件不分透视
【发布时间】:2019-01-17 01:27:09
【问题描述】:

我目前正在为 Eclipse 开发一个插件。现在它只适用于 Java 透视图,但我想知道是否有可能让它工作,无论我使用什么透视图。

例如,我正在尝试使其适用于 PyDev。

我希望我的插件在我右键单击包资源管理器中的文件时执行一个操作。

如果不可能,我将不胜感激有关如何更改我的插件以便在 PyDev 上工作的任何建议。

提前致谢!

【问题讨论】:

  • 上下文菜单操作使用什么?
  • 我希望它显示文件的信息,例如内容或名称

标签: java eclipse eclipse-plugin pydev perspective


【解决方案1】:

包浏览器不限于特定的视角,所以这不是问题。 PyDev 更可能使用的是看起来相似的不同视图。

如果您使用org.eclipse.ui.menus 扩展点为上下文菜单提供帮助,您可以指定该贡献适用于任何上下文菜单,并使用<visibleWhen> 来控制它何时显示。例如:

<extension
     point="org.eclipse.ui.menus">
  <menuContribution
        locationURI="popup:org.eclipse.ui.popup.any">
     <command
           commandId="org.eclipse.ui.examples.contributions.view.edit"
           mnemonic="%contributions.view.edit.mnemonic">
         <visibleWhen
                 checkEnabled="false">
             <iterate ifEmpty="false">
                 <adapt
                       type="org.eclipse.core.resources.IFile">
                 </adapt>
            </iterate>
         </visibleWhen>
      </command>
  </menuContribution>

位置popup:org.eclipse.ui.popup.any 是一个特殊的ID,用于指定任何弹出菜单。

【讨论】:

  • 非常感谢!这解决了可见性问题,现在我可以在任何包资源管理器上查看我的命令,但出现了另一个问题。当我想执行该操作时,它仅在我单击 java 文件时执行命令,但我希望它也可以在 python 文件上工作。关于为什么会发生这种情况或我该怎么做的任何想法?提前致谢!
  • 什么视图下的python文件?可能是 pydev 使用了不支持“适应”到“IFile”的视图。我不使用 pydev 所以我不能说它做了什么。你可以通过查看 pydev 插件中的 plugin.xml 来了解 pydev 的作用。
  • 您也可以使用Eclipse plugin spy 查看视图中的选择。
  • “PyDev 包资源管理器”视图中的 Python 文件。在这个视图中,当我有一个 Python 项目和一个 Java 项目时,它只适用于 Java。对于 Python,当我右键单击文件时,我可以看到并单击该操作,但它什么也不做,所以我假设 PyDev 支持 'adapt' to 'IFile' 。
  • 如果出现菜单项,则 plugin.xml 代码是正确的,并且您的操作代码有问题。进行一些调试,添加一些日志记录,检查 .log 文件是否有错误。
猜你喜欢
  • 1970-01-01
  • 2013-04-12
  • 2014-11-25
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多