Eclipse自定义内容辅助基于默认Java内容辅助结果

时间:2012-10-18 10:04:35

标签: eclipse eclipse-pde eclipse-plugin

我正在实施任务工具。作为其中的一部分,我正在制作一个Eclipse插件来反映某些代码级别的问题。

在Eclipse插件中,我的目标是根据主机任务的状态为不同的Java元素附加一些视觉辅助工具。我已经成功地将多色标记添加到默认Java编辑器的垂直标尺以及概述显示的资源图标。但是,我无法更改Java内容辅助中的图标。

首先,我认为通过使用扩展点org.eclipse.ui.decorators并将其启用设置为org.eclipse.jdt.core.IJavaElement,内容助手也会受到影响,因为概述中的元素图标就是这种情况。我已经尝试过其他几个启用类,一直到ICompletionProposal

由于这种方法,其他许多方法和扩展默认的Java内容辅助,不会work。我决定实施自己的内容帮助。

现在的想法是以某种方式获取默认的Java内容辅助结果并对建议的元素运行一些检查,如果匹配,则更改内容辅助中显示的图标,以反映相关任务的级别。

我试图查看Eclipse的默认Java编辑器和Mylyn项目的源代码,但我无法理解它们如何提供Java内容辅助以及如何访问/重做它们。

我希望得到的最终结果:LINK

实际问题

在Eclipse中为默认Java编辑器提供新的内容辅助(类别)时,如何获取默认Java内容助手为该点生成的提议列表?


我的第一个问题,当然还有一个长篇介绍,请让我知道我是否应该以任何方式对其进行编辑,最重要的是感谢所有的帮助!

-J3lly

1 个答案:

答案 0 :(得分:2)

请查看以下扩展点:org.eclipse.jdt.ui.javaCompletionProposalComputer

要实现自己的内容辅助,您必须编写一个实现org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer的类。在您的情况下,由于您要修改默认Java内容辅助的行为,因此您应该覆盖其中一个内部实现org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputerorg.eclipse.jdt.internal.ui.text.java.JavaAllCompletionProposalComputer或任何其他实现,具体取决于您要修改的内容辅助

现在您要做的就是覆盖返回完成提案列表的方法computeCompletionProposals。被覆盖的方法应调用super.computeCompletionProposals(...)来获取默认的完成提案,然后您可以根据需要对其进行修改。