xtext: Как отключить проверку текстового ввода для сгенерированных плагинов xtext (dsl)

В Xtext есть несколько различных видов проверок, которые xtext выполняет автоматически. Есть ли возможность их отключить?

  • Lexer / Parser: синтаксическая проверка
  • Linker: проверка перекрестных ссылок

Я пытаюсь отключить анализатор / лексер для возможности редактировать очень большие файлы в редакторе dsl. Насколько я вижу, это невозможно сделать из рабочего процесса mwe2, так как следующий фрагмент является точкой входа для возможности открыть редактор.

фрагмент = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}

Я упоминал, что класс InternalMysDslLexer создается много раз, пока я что-то печатаю. Должен ли я переопределить этот класс? какой будет правильный подход?

Спасибо.

1 ответ

Чтобы отключить переопределение ссылок ILinker в вашем модуле времени выполнения:

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

А затем переопределите doLinkModel(), чтобы отметить (только для больших файлов, я думаю):

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

Не уверен, что вы имеете в виду, говоря, что вы хотите отключить проверку синтаксиса. Это отключит все функции Xtext. Разве не лучше просто редактировать огромные файлы, используя обычный текстовый редактор вместо Xtext?

Также есть много ресурсов по производительности Xtext на SO, форуме сообщества Eclipse Xtext и различных блогах.

Другие вопросы по тегам