2

私は自分の DSL 用に Eclipse エディターを作成しました。エディターを開くか保存するときは、内容を確認し、構文エラーがないか問題マーカーを作成します。マーカーは期待どおりエディターに表示され、問題ビューにも表示されます。

拡張ポイントがあり、問題マーカーの解決策を作成org.eclipse.ui.ide.markerResolutionする実装を提供します。IMarkerResolutionGeneratorこれは正常に機能します。[問題] ビューで問題を右クリックすると、コンテキスト メニューに [クイック修正] オプションが表示され、正常に機能します。

私のエディタは拡張SourceViewerConfigurationし、私は をオーバーライドgetQuickAssistAssistant()して、拡張子 を返しますQuickAssistAssistant。これにより、エディターで問題を右クリックして、メニューに [クイック修正] オプションを表示できます。

Java エディターと同じように、エディターで問題にカーソルを合わせると、クイック フィックスの解決策が表示されるようにしたいと思っています。現在、問題のテキストのみがツールチップに表示されます。これには別のフックがありますか、それとも既に実装した 2 つのクイック フィックス フックでカバーする必要がありますか?

4

1 に答える 1

1

私は同じ問題を抱えていて、自分で解決策を見つけました:カスタムEclipseエディターのクイックフィックス/クイックアシストを実装するには?

私が理解していることから、マーカーは問題ビューに表示され、注釈はエディターに表示されます (ルーラー上およびマウス ホバー上)。

拡張ポイントを使用しorg.eclipse.ui.editors.annotationTypesて独自の注釈タイプを登録し、拡張ポイントを使用しorg.eclipse.ui.editors.markerAnnotationSpecificationてルック アンド フィールを指定します。カスタムSourceViewerConfigurationクラスでは、オーバーライドgetAnnotationHover(...)してオブジェクトを返し、DefaultAnnotationHoverオブジェクトgetTextHover(...)を返すDefaultTextHoverため、ソース ビューアーに注釈が表示されます。

アノテーションを作成するにはorg.eclipse.ui.texteditor.SimpleMarkerAnnotation、 を使用できます。コンストラクターにSimpleMarkerAnnotation渡すマーカー オブジェクトを作成できます。次に、注釈を注釈モデルに追加する必要があります。getAnnotationModel()で使用してSourceViewerから でaddAnnotation(Annotation annotation, Position position)使用できますAnnotationModel。モデル内のすべての注釈がエディターに表示されます。

org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel注釈モデルとして使用することもできます。AbstractMarkerAnnotationModelメソッドを提供するため、最初に注釈オブジェクトを作成する必要はありませんaddMarkerAnnotation(IMarker marker)

IAnnotationModelインターフェイスを見てください。

于 2012-05-26T11:11:09.010 に答える