Xtextは、Eclipse上で稼動するDSL用のエディター開発プラグイン。
|
|
|
|
|
Xtextは、“自分独自のDSL”用のエディターを作れるフレームワーク。[2013-08-17]
DSL(の文法)の定義を記述すると、そのDSLを入力する為のエディター(の最小実装)を生成できる。
文法定義からパーサーを作成するツールは色々ある(yacc/lexとかJavaCCとか)が、Xtextは、パーサーだけでなくエディターまで作ってくれるところがすごい。
Xtext 2.4.2では、DSL定義を記述してビルドするだけで、以下の機能が使えるエディターが生成される。
(もちろん基本的な実装だけであり、本格的に使うにはカスタマイズ(コーディング)する必要がある)
機能 | 説明 | 自前でTextEditorを実装する場合との比較 |
---|---|---|
キーワードの色付け (ハイライト) |
キーワードに色が付く。 エディター専用の設定ページで色を変更することも出来る。 |
TextEditorでは、ルールおよびパーティション定義を実装する必要がある。 色の設定ページは独自に作成する必要がある。 |
対応する括弧の強調表示 | 括弧にカーソルを置くと、対応する括弧が強調表示される。 | TextEditorでは、ICharacterPairMatcherを実装する必要がある。 |
フォールディング | エディター上のブロックを閉じたり開いたりできる。 | TextEditorでは、フォールディング範囲を算出するロジックを実装する必要がある。 |
アウトラインページ | アウトラインページが表示される。 Ctrl+oによるクイックアウトラインも使用できる。 |
TextEditorでは、ContentOutlinePageを実装する必要がある。 クイックアウトラインの実装方法は不明。 |
入力補完 | キーワードの入力補完が出来る。 | TextEditorでは、IContentAssistProcessorを実装する必要がある。 |
ソース整形 | Ctrl+Shift+Fによるソースの整形が出来る。 | TextEditorでは、IContentFormatterを実装する必要がある。 |
リンク | 参照先(定義元)へF3キー(Ctrl+左クリック)でジャンプできる。 | TextEditorでは、ハイパーリンクを実装する必要がある。 |
ツールチップ | ツールチップ(ホバーメッセージ)が表示される。 | TextEditorでは、ITextHoverを実装する必要がある。 |
エラーマーカー | 文法エラーがある箇所にエラーマークが(ほぼリアルタイムで)付く。 | TextEditorでは、エラーマーカーを作成する必要がある。 |
クイックフィックス | エラーがあるときに修正候補が(出せる場合は)出る。 | |
名称一覧表示 | Ctrl+Shift+F3で全DSLファイル内の名称一覧のダイアログが出る。 そこから定義箇所へジャンプできる。[2013-08-27] |