- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我扩展了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/
我是一名优秀的程序员,十分优秀!