1

Xtext には、xtext が自動的に処理するいくつかの異なる種類の検証があります。それらを無効にする可能性はありますか?

  • レクサー/パーサー: 構文検証
  • リンカー: クロスリンク検証

非常に巨大なファイルを DSL エディターで編集できるようにするために、パーサー/レクサーを無効にしようとしています。私が見る限り、mwe2 ワークフローから実行することはできません。次のフラグメントがエディターを開くためのエントリ ポイントであるためです。

フラグメント = parser.antlr.XtextAntlrUiGeneratorFragment 自動注入 {}

何かを入力している間、 InternalMysDslLexerクラスが何度もインスタンス化されると述べました。このクラスをオーバーライドする必要がありますか? 正しいアプローチは何でしょうか?

ありがとうございました。

4

1 に答える 1

2

ランタイム モジュールでリンク オーバーライド ILinker を無効にするには、次のようにします。

public Class<? extends ILinker> bindILinker() {
    return MyLinker.class;
}

そして、 doLinkModel() をオーバーライドして do noting (私が推測する巨大なファイルの場合のみ):

public class MyLinker extends LazyLinker {
    protected void doLinkModel(final EObject model, IDiagnosticConsumer consumer) {}
}

構文検証を無効にしたいという意味がわかりません。これにより、すべての Xtext 機能が無効になります。Xtext エディタではなく、通常のテキスト エディタを使用して巨大なファイルを単純に編集した方がよいのではないでしょうか?

また、SO、 Eclipse Xtext コミュニティ フォーラム、およびさまざまなブログでの Xtext パフォーマンスに関するリソースも多数あります。

于 2014-08-21T11:01:42.157 に答える