gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:02:00 28 4
gpt4 key购买 nike

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

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

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

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

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

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

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

实际问题

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

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

-J3lly

最佳答案

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

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

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

关于基于默认 Java 内容辅助结果的 Eclipse 自定义内容辅助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12952083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com