【问题标题】:Eclipse Custom Content Assist Based on Default Java Content Assist results基于默认 Java 内容辅助结果的 Eclipse 自定义内容辅助
【发布时间】:2012-10-18 10:04:35
【问题描述】:

我正在实施一个任务工具。作为其中的一部分,我正在制作一个 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

【问题讨论】:

    标签: eclipse eclipse-pde eclipse-plugin


    【解决方案1】:

    看看下面的扩展点: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(...)来获取默认的完成提议,然后你可以根据自己的需要进行修改。

    【讨论】:

    • 确实,这就是我目前陷入困境的地方。因为我不知道从哪里查询信息以生成CompletionProposals。如果我能以某种方式访问​​默认的CompletionProposals,我可以查询它们以生成我自己的图像,然后相应地更改图像。
    • 我从未尝试过,但您应该能够覆盖默认的 Java 实现 org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer。然后在 computeCompletionProposals 方法中调用 super.computeCompletionProposals(...) 来获取默认的完成建议并用你自己的图像进行修改。
    • 哦,现在我明白了。 JavaCompletionProposalComputer 只是一个宿主类,但仍然可以实例化...通过扩展它的一些子类,如 JavaAllCompletionProposalComputer(它设置完成建议收集器),您实际上可以获得默认建议列表。谢谢overmeulen!也许您想对其进行编辑,以便我可以将您的答案标记为正确的答案:)
    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 2010-11-24
    • 2012-05-29
    • 2011-09-13
    相关资源
    最近更新 更多