4

eclipse Java エディタと同じように、Eclipse エディタ プラグインで構文エラー (トークンの不正なシーケンスなど) を示すにはどうすればよいですか?あなたはどちらかにカーソルを合わせますか?

カスタム ファイル形式 (具体的には、Shark3D ゲーム エンジンの「スネーク ファイル形式」) 用の Eclipse エディター プラグインを作成しています。構文の強調表示とアウトラインを取得するためのスキャナーを実装しました。

  • 下線については、スキャナーに通常の代わりにIToken「うねる下線」を返すだけTextAttributeですか、それとも構文エラーをマークするための特定のメカニズムがありますか?
  • スクロールバー マーカーを実装するにはどうすればよいですか? IAnnotationModel関連するインターフェースはここにありますか?もしそうなら、マーカーが表示されるように実装をどこに登録しますか?
  • 私はSourceViewerConfiguration.getAnnotationHover()、ホバー動作を実装できるようにするだけを見つけましたが、スクロールバーマーカーを意味すると思われる「注釈」についてのみ - テキスト自体のホバー動作を実装するにはどうすればよいですか?

具体的なアドバイスと、これをカバーするチュートリアルの URL をいただければ幸いです。Eclipse のヘルプ ドキュメントと例はそうではないようです。

編集: マーカーはこれに対する最良の解決策です。それらを使用する方法の実例は、プラグインのサンプル コードにあります。org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction

4

2 に答える 2

8

マーカーを使用する必要があります。

「The Java Developer's Guide to Eclipse」から派生した例は次のとおりです。

<extension point="org.eclipse.core.resources.markers"  
            id="snakesyntax"  
            name="Snake syntax error">  
    <super type="org.eclipse.core.resources.problemmarker" />  
    <super type="org.eclipse.core.resources.textmarker" />  
    <persistent value="true" />
<extension>

IMarker marker = res.createMarker("com.ibm.tool.resources.snakesyntax");

marker.setAttribute(IMarker.SEVERITY, 0);
marker.setAttribute(IMarker.CHAR_START, startOfSyntaxError);
marker.setAttribute(IMarker.CHAR_END, endOfSyntaxError);
marker.setAttribute(IMarker.LOCATION, "Snake file");
marker.setAttribute(IMarker.MESSAGE, "Syntax error");
于 2008-12-26T00:33:26.257 に答える
2

正しい方法は、マーカー インターフェイスを使用することです。

マーカーは基本的に、マーカー オブジェクトをソース コード内の場所にマップするモデルであるため、複数のファイルでエラーが発生する可能性がある状況では意味があります。(IMarker インターフェイスを参照)

現在のエディターにマークアップを追加したいが、すべてのプロジェクトに追加するわけではない場合の安価なオプションは、自分で追加および削除できる注釈を使用することです。

マーカーは UI で注釈として表されますが、Eclipse は注釈自体を追加および削除します。直接注釈を使用すると、制御できます。

于 2008-12-26T00:45:39.447 に答える