Можно ли использовать Xtext без затмения? - PullRequest
10 голосов
/ 20 октября 2011

У меня есть DSL (реализованный с помощью ANTLR), для которого мне нужно написать редактор справки / автозаполнения. Я перенес прототип моей грамматики в Xtext, и я очень доволен качеством редактора, который он генерирует.

К сожалению, я не могу использовать Eclipse в качестве редактора. Вместо этого я хотел бы использовать грамматику Xtext для генерации некоторых артефактов, которые я мог бы повторно использовать вне Eclipse. Из того, что я видел, минимальный набор артефактов, которые мне нужны:

  • модели ЭДС,
  • парсеры,
  • the ProposalProviders и
  • необходимые библиотеки.

Кто-нибудь пытался использовать Xtext вне Eclipse? От каких внешних библиотек это зависит?

Спасибо!

Ответы [ 4 ]

9 голосов
/ 21 октября 2011

для серверной части (синтаксический анализатор / сериализатор / форматтер / метамодель и т. Д.) Это не проблема, и для этого потребуется около 30 библиотек / 17 МБ. часть пользовательского интерфейса требует затмения.

вы можете использовать мастер экспорта -> запускаемого файла jar, чтобы получить все необходимые зависимые библиотеки

8 голосов
/ 02 ноября 2011

По сути тот же ответ, что и ответ Кристиана, это всего лишь указатель на более подробное описание Как развернуть Xtext в среде безголового простого Java-приложения . Если вы заинтересованы в использовании артефактов, сгенерированных из грамматики, вы можете найти фрагмент в XText FAQ

1 голос
/ 11 ноября 2015

С Xtext 2.9 можно построить свою языковую инфраструктуру независимо от Eclipse (и, возможно, нацелена на IntelliJ IDEA или Интернет), используя старый добрый Maven / Gradle.Просто снимите флажок Eclipse plugin при создании проекта Xtext и установите Предпочитаемую систему сборки на Maven или Gradle .

1 голос
/ 17 сентября 2015

Вы можете использовать режим командной строки приложения xtext.Для этого: вы должны в файле описания рабочего процесса GenerationYourDSLName.mwe2 следующие строки

// generator API
fragment = generator.GeneratorFragment {
  generateJavaMain = true
}

, а затем сгенерировать артефакты xtext

...