Как вызвать действие при завершении / изменении свойства типа? - PullRequest
0 голосов
/ 15 мая 2018

В моей грамматике есть следующий тип:

TestSuite:
    'TestSuite:' name = ID
    'Type:' type = SuiteType;

enum SuiteType:
    INTERNAL='1' | EXTERNAL='2';

Я хотел бы прочитать XML-файл всякий раз, когда свойство получает (новое) значение, поскольку я использую содержимое этого XML-файла для проверки изавершение контента.В зависимости от значения свойства XML-файл, который будет прочитан, будет разным.

Как вызвать действие, которое будет считывать значение свойства типа из экземпляра DSL среды выполнения?

1 Ответ

0 голосов
/ 15 мая 2018

Возможно, вы можете попробовать добавить адаптер EMF ко всем экземплярам TestSuite, чтобы при уведомлении, которое изменяет вашу функцию «type» на определенное значение, XML-файл по вашему выбору считывался и действовал.

это сообщение в блоге , кажется, делает свое дело: в конце фазы связывания адаптер (это словарь EMF, в основном слушатель) может быть зарегистрирован для ваших экземпляров TestSuite.

Затем в реализации адаптера вы можете отфильтровать, нужно ли реагировать, используя методы Уведомление , такие как getFeature () .

Поскольку вы упоминаете, что хотите сделать это для завершения и проверки контента, вам может потребоваться сделать все это на этапах определения объема / проверки Xtext. Вероятно, у вас будет небольшая «задержка» при нажатии Ctrl + Space для автозаполнения, если вашей IDE нужно найти и проанализировать ваш XML-файл, но я ожидаю, что это ...

...