Groovy DSL с поддержкой IDE для завершения
Я нуждаюсь в DSL, который имеет некоторую известную структуру и многие известные только во время выполнения.
например:
test "name goes here"{
description : """ description """
create user {
id : 1
fn : """ x """
ln : """ y """
}
assert user.name == "x"
delete user {
id = 1
}
user1 = GET user (1)
assert user1 == null
}
в приведенном фрагменте ключевые слова test
, create
, GET
, delete
и т.д. известны во время разработки DSL/tooling. Но когда пользователь вызывает помощник по содержимому после create
, Я хочу загрузить некоторые файлы схемы (скорее, я бы скачал схему в качестве первого шага моей обработки и кэшировать схему) и предложить сущности, среди которых пользователь является одной из сущностей. И когда пользователь вызывает помощник по содержимому для свойств, я снова смотрю в определение сущности и предлагаю fn
, ln
и т.д., как возможные записи там.
Это выполнимо с Groovy и GDSL? благодарю вас