2

Eclipse 独自の AbstractTextEditor でカスタムの複数行マーカーを表示する Eclipse プラグインを開発しています。

これが私がこれまでに持っているものです:

  • スーパータイプ「org.eclipse.core.resources.textmarker」のカスタムマーカー
  • 注釈タイプ (org.eclipse.ui.editors.annotationTypes)
  • マーカーAnnotationSpecification (org.eclipse.ui.editors.markerAnnotationSpecification)

これはすべてうまく機能しており、マーカーがエディターに表示されます。ただし、VerticalRuler での描画方法をカスタマイズする必要があるため、アイコンとして表示されるだけでなく、影響を受けるソース行にまたがる垂直線として表示されます。

これは、IAnnotationPresentation を実装し、paint() を上書きすることで、Annotations で実行できることを知っています。

しかし、どうすればマーカーに対してこれを行うことができますか?

編集:これは私が達成しようとしているもののスクリーンショットです:

左の赤いバー

4

1 に答える 1

1

RulerColumn (拡張ポイントorg.eclipse.ui.workbench.texteditor.rulerColumns) を提供し、 andを含めないmarkerAnnotationSpecificationように構成することでこれを解決しました(したがって、デフォルトの AnnotationRulerColumn には表示されません)。verticalRulerPreferenceKeyverticalRulerPreferenceValue

IContributedRulerColumn誰かが少しスパースを最適に実装する方法に関するドキュメントを見つけた場合: サブクラスAbstractContributedRulerColumn化し、メソッドを のサブクラスに委譲させる方法があるようですAbstractRulerColumn

例えば:

public class MyRulerColumn extends AbstractContributedRulerColumn {
    private IVerticalRulerColumn delegate = new AbstractRulerColumn() { … }
    public void setModel(IAnnotationModel model) {
        delegate.setModel(model);
    }
    …
}

外観のカスタマイズは、デリゲートの paint… メソッドの 1 つを上書きするのと同じくらい簡単です。

于 2013-03-06T16:59:45.007 に答える