4

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

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

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

由于这种方法,一堆其他方法和扩展默认的 Java 内容辅助,都行不通。我决定实施我自己的内容辅助。

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

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

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

实际问题

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


我的第一个问题,当然还有很长的介绍,如果我应该以任何方式编辑它,请告诉我,最重要的是提前感谢所有帮助!

-J3lly

4

1 回答 1

2

看看下面的扩展点:org.eclipse.jdt.ui.javaCompletionProposalComputer

要实现您自己的 Content Assist,您必须编写一个实现org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer. 在您的情况下,由于您想要修改默认 Java Content Assist 的行为,您应该覆盖内部实现之一org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputerorg.eclipse.jdt.internal.ui.text.java.JavaAllCompletionProposalComputer或者根据您要修改的 Content Assist 覆盖任何其他实现。

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

于 2012-11-27T17:47:14.223 回答