首页 > 解决方案 > Eclipse 插件操作在正常的 2019-12 实例中没有任何作用,但在 rcp 调试实例中工作正常

问题描述

我正在尝试在https://github.com/davidmichaelkarr/e4macs调试 Eclipse 插件的问题。这是原始应用程序的一个分支,不幸的是,它现在是废弃软件。

随着 Eclipse 继续发布更多版本,插件中出现了少量问题。我能够解决第一个问题(由我与基本 repo 的差异显示),但在 2019 年 9 月左右出现的下一个问题有点难以弄清楚。

具体来说,“split-window-vertically”命令在我执行时什么都不做。它是绑定到键还是直接从“执行扩展命令”提示符执行都没有关系。日志中没有出现任何关于此的内容。

因此,我下载了 RCP 2019-12 发行版的实例并进行了调试。我在调试中运行了一个“Eclipse 应用程序”并测试了该功能。它工作得很好。这意味着我在常规 2019-12 安装中加载的其他东西以某种方式使此功能无法执行任何操作。

从市场客户端,我尝试在调试实例中安装一些与我在常规实例中相同的插件,但我并没有走得太远。我试图安装“Spring IDE”,但这给了我很多错误。它以“无法完成”开头,它给了我一长串“将被卸载”、“将被升级/降级”和“将不被安装”的列表。所有 Spring 功能都在后一个列表中。我尝试安装“Groovy”插件,这给了我几个“缺少要求”错误。

我不知道丢失的插件是否是导致操作工作的原因,我无法弄清楚为什么我无法安装插件。

我不确定在这里做什么。

更新

有评论指出,在调试实例中安装插件的方法是将插件添加到目标平台。我继续这样做,并发现要使用的插件集的选择之一是来自现有安装,这是完美的,因为这正是我希望调试实例使用的,我现有的 2019-12 中的所有插件安装。

不幸的是,这样做显然已经删除了我其他已安装的插件作为问题的根源。我在这个新编辑的调试实例中测试了插件代码,它与我的常规实例具有所有相同的插件,并且插件运行良好。在我的常规实例中,当我执行相关操作时,什么也没有发生。没有任何错误,我也没有得到预期的结果。有问题的操作是“垂直拆分窗口”,它应该做它听起来的样子。

请注意,通过将插件源设置为常规安装,这还包括相关插件的已安装副本,即 Emacs+ 插件(从“dropins”目录安装)。我不确定那会做什么。无论如何,我在插件代码中设置了断点,当我执行操作时,它确实命中了断点。

请注意,我也确实将相同的首选项文件导入到我在常规安装中使用的调试实例中,因此首选项是相同的,并且根据前面的信息,安装的插件集应该几乎相同(我不相信它们完全相同)。

调试实例和我的常规安装之间的唯一区别是常规安装是来自 Eclipse 安装程序的“Eclipse IDE for Java Developers”变体,但调试实例是从“Eclipse for RCP and RAP Developers”变体启动的。我不知道这是否重要。

更新

我在插件代码中添加了记录器调用(使用“org.eclipse.equinox.log.Logger”,这是要使用的正确记录器类吗?)。我什至在操作处理程序类的构造函数中添加了一个记录器调用(甚至是一个 println)。在日志文件中没有看到这些。这告诉我我的插件配置文件有问题,比如“plugin.xml”文件。

“plugin.xml”文件有 3928 行长,所以我有点犹豫是否将其粘贴到此处。我尝试在 Eclipse 中打开它,它没有抱怨任何事情。

以下是显示相关条目的屏幕截图:

在此处输入图像描述

请注意,尽管可执行操作没有执行任何操作,并且似乎没有执行处理程序,但操作定义的某些方面已正确加载到 Eclipse 中,例如操作描述。Emacs+ 提供了一个“describe-command”功能,我可以为这个命令指定“split-window-vertically”,它会正确返回在“plugin.properties”文件中设置的这个命令的描述。

另请注意,尽管此特定操作在此版本的 Eclipse 中没有做任何事情,但 Emacs+ 中的其他功能仍然可以正常工作。

标签: javaeclipseeclipse-plugin

解决方案


推荐阅读