XText - несколько грамматик и пример веб-редактора

У меня есть настройка проекта XText с несколькими грамматиками, и я могу редактировать каждую грамматику с перекрестными ссылками в среде IDE, созданной рабочим процессом mwe2. Когда я запускаю пример веб-редактора, первая грамматика, определенная в рабочем процессе mwe2, работает правильно.

Если я изменю сгенерированный index.html для использования одного из альтернативных расширений грамматики, редактор больше не будет работать, и я получаю сообщение об ошибке, которое выглядит следующим образом:

Ошибка "экземпляров" службы Xtext: невозможно определить язык Xtext для ресурса 3c05cdd1.ed

Я хотел бы понять, что не так, чтобы лучше понять, как я могу начать минимальную интеграцию редакторов грамматик в нашу существующую консоль.

Спасибо!

Пьер Падовани

P.S. Я разместил этот же вопрос на форумах сообщества Eclipse, но похоже, что мой пост застрял в очереди модераторов.


person ppadovani    schedule 13.11.2018    source источник
comment
как собрать вместе веб-приложение? см. org.xtext.example.mydsl2.web.MyDslServlet.init ()   -  person Christian Dietrich    schedule 14.11.2018
comment
@ChristianDietrich В данный момент я ничего не упаковываю. Я запускаю ServerLauncher из созданного проекта .web. В этом проекте есть два файла * сервлетов, каждый с функцией init (). Я предполагаю, что эти классы внедряются во все работающее приложение.   -  person ppadovani    schedule 14.11.2018


Ответы (1)


Найдя ветку, о которой упоминает @ppadovani, кажется, что единственное необходимое изменение - игнорировать все сгенерированные файлы Servlet.xtend, кроме того, чья грамматика работает.

В том, что работает, необходимо инициализировать запуск WebSetup для других языков.

override init() {
    super.init()

    // call createInjectorAndDoEMFRegistration for each WebSetup
    new DerivedDslWebSetup().createInjectorAndDoEMFRegistration

    // keep the rest as-is
    val injector = new CoreDslWebSetup().createInjectorAndDoEMFRegistration()
    disposableRegistry = injector.getInstance(DisposableRegistry)
}

Ссылка: https://www.eclipse.org/forums/index.php?t=msg&th=1096166&goto=1798287&#msg_1798287

person Tomasz Pluskiewicz    schedule 11.07.2019