Отступ с помощью форматера Xtext IFormattableDocument
Я заметил подобные проблемы в нескольких местах с форматером Xtext. Я не уверен, является ли это моим незнакомым с этим или у него просто есть некоторые общие недостатки. Надеюсь, кто-то может помочь мне в этом конкретном случае, и это даст мне лучшее общее понимание. В языке у меня есть кусок языка объявления переменных, и он содержит итерацию типа "Расширения". Желаемый формат выглядит так:
varName:TypeName:=Value
[ext1Name:Value]
[ext2Name:Value]
Поэтому я правильно форматирую переменную часть, но когда я пытаюсь отформатировать расширения с помощью этого кода:
def dispatch void format(Extension it, extension IFormattableDocument document) {
regionFor.keyword("[").surround[noSpace]
regionFor.keyword("]").surround[noSpace]
prepend[newLine] //This is doing something
prepend[indent] //This is not doing anything
}
Обратите внимание, что в методе формата для объявления переменной format
вызывается на каждое расширение как таковое extensions.forEach[format]
Я знаю, что этот код выполняется на соответствующем фрагменте, потому что если я удаляю prepend[newLine]
мой результат таков:
varName:TypeName:=Value [ext1Name:Value] [ext2Name:Value]
Проблема в том, что prepend[indent]
похоже, ничего не делает для полного кода, который я показал выше, мой вывод таков:
varName:TypeName:=Value
[ext1Name:Value]
[ext2Name:Value]
Также, если кто-то знает хорошую документацию для этого, пожалуйста, укажите мне, поскольку я не смог найти ничего полезного в документации по xtext.