我已经扩展org.eclipse.ui.editors.text.TextEditor
来实现自定义编辑器。 对于这个编辑器,我定义了一个标记类型(org.eclipse.core.resources.markers
扩展点)和一个注释类型(org.eclipse.ui.editors.annotationTypes
扩展点),以在我的编辑器中标记特定部分的代码。我使用协调器来更新我的注释模型。如何为自定义eclipse编辑器实现Quick Fix/Quick Assist?
现在我想添加一个快速修复/快速辅助功能。当我点击一个提案时,我将鼠标悬停在代码的带注释部分上,并用给定的字符串替换该部分,我只是想要eclipse来显示一个包含提案的框。就像Java编辑器的快速修复功能一样。
那么,实现这种行为的最好方法是什么?
我读到标记分辨率发生器和快速辅助处理器,但我仍然感到困惑这一切是如何一起工作......
我会很高兴,如果有人可以点我到正确的方向。
编辑:从我了解到目前为止,MarkerResolutionGenerator
负责显示问题视图中的快速修复。要在源代码查看器中快速修复,我必须为我的SourceViewer
设置一个QuickAssistAssistant
,并实现一个返回CompletionProposals
的QuickAssistProcessor
。 这是正确的做法吗?
EDIT2:我想知道如果我需要Markers
可言,或仅Annotations
,我很困惑...
我这样做了,但是我的标记解析生成器的方法从不被调用。我认为这是正确的方法,如果您有一个Builder来管理保存和构建标记,但是我将Annotations添加到我的AnnotationModel,因为我只需要在输入时进行错误标记。 或者我必须在我的SourceViewerConfiguration中设置某些内容才能使分辨率生成器起作用? –
AFAIK快速修复未注册到注释但注册到标记。您可以使用markerannotationspecification扩展点自动使用标记创建注释。 –
好的,我会尝试创建标记而不是注释,然后... –