Eclipse:如何在Vertical Ruler上自定义标记的绘制

时间:2013-03-04 17:17:47

标签: java eclipse eclipse-plugin eclipse-rcp

我正在开发一个Eclipse插件,它在Eclipse自己的AbstractTextEditor中显示自定义多行标记。

这是我到目前为止所做的:

  • 具有超类型“org.eclipse.core.resources.textmarker”
  • 的自定义标记
  • annotationType(org.eclipse.ui.editors.annotationTypes)
  • markerAnnotationSpecification(org.eclipse.ui.editors.markerAnnotationSpecification)

这一切都运作良好,我的标记显示在编辑器中。但是我需要自定义它们在VerticalRuler上绘制的方式,因此它们不仅显示为图标,而且显示为跨越受影响源行的垂直线。

我知道,这可以通过实现IAnnotationPresentation并覆盖paint()来完成。

但我怎样才能为标记做到这一点?

编辑:这是我想要实现的截图:

Red bars on the left

1 个答案:

答案 0 :(得分:1)

我通过提供一个RulerColumn(扩展点org.eclipse.ui.workbench.texteditor.rulerColumns)并将markerAnnotationSpecification配置为而不是包括verticalRulerPreferenceKeyverticalRulerPreferenceValue来解决这个问题(所以它将不会显示在默认的AnnotationRulerColumn上。

如果有人也找到了关于如何最好地实现IContributedRulerColumn有点稀疏的文档:似乎要走的是子类AbstractContributedRulerColumn并让方法委托给{{1}的子类}}

例如:

AbstractRulerColumn

自定义外观就像覆盖委托中的一个paint ...方法一样简单。