gpt4 book ai didi

eclipse - 如何为自定义 eclipse 编辑器实现 Quick Fix/Quick Assist?

转载 作者:行者123 更新时间:2023-12-02 18:23:15 26 4
gpt4 key购买 nike

我扩展了org.eclipse.ui.editors.text.TextEditor来实现自定义编辑器。对于此编辑器,我定义了一个标记类型(org.eclipse.core.resources.markers 扩展点)和一个注释类型(org.eclipse.ui.editors.annotationTypes) > 扩展点)来标记编辑器中代码的特定部分。我使用协调器来更新我的注释模型。

现在我想添加快速修复/快速协助功能。我只是想让 Eclipse 显示一个包含建议的框,当我将鼠标悬停在代码的带注释部分上并用给定的字符串替换该部分时,当我单击建议时。就像 java 编辑器的快速修复功能一样。

那么,实现此行为的最佳方法是什么?

我读到了有关标记分辨率生成器和快速辅助处理器的信息,但我仍然困惑它们如何协同工作......

如果有人能指出我正确的方向,我会很高兴。

编辑:据我目前所知,MarkerResolutionGenerator 负责在问题 View 中显示快速修复。要在源代码查看器中快速修复,我必须为我的 SourceViewer 设置一个 QuickAssistAssistant 并实现一个返回 CompletionProposals 的 QuickAssistProcessor 。这是正确的方法吗?

编辑2:我想知道我是否需要标记,或者只需要注释,我很困惑......

最佳答案

我终于找到了如何让 Quick Fix 为我的编辑器工作。

我使用annotationTypes注册我自己的注释类型和 markerAnnotationSpecification 的扩展点指定外观的扩展点。按照我的习惯SourceViewerConfiguration I 类覆盖 getAnnotationHover(...)返回 DefaultAnnotationHover对象和getTextHover(...)返回 DefaultTextHover对象,因此注释显示在我的源查看器中。

然后我覆盖getReconciler(...)返回 MonoReconciler用我自己的 IReconcilingStrategy 实现在其 reconcile(...) 中创建注释方法。最后我覆盖 getQuickAssistAssistant(...)返回 QuickAssistAssistant用我自己的 IQuickAssistProcessor 实现。 computeQuickAssistProposals(...)处理器类中的方法计算当我按 CTRL+1 时显示的快速修复建议。

我没有创建任何Marker对象并且不使用 MarkerResolutionGenerator ,因为标记概念比仅使用注释要重量级得多,并且注释提供的功能符合我的需求。

关于eclipse - 如何为自定义 eclipse 编辑器实现 Quick Fix/Quick Assist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945371/

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