S-JIS[2013-08-14/2017-05-30] 変更履歴

Xtext

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]
 

Eclipseへ戻る / 技術メモへ戻る
メールの送信先:ひしだま