В моем DSL у меня есть () для многих вещей, например, условий if и некоторых объявлений, таких как block(a;b;c;d;);
В моей функции configureFormatting я делаю это в следующем порядке:
for (Pair<Keyword, Keyword> pair : grammarAccess.findKeywordPairs("(", ")"))
{
c.setNoSpace().after(pair.getFirst());
c.setNoSpace().before(pair.getSecond());
}
c.setIndentation(block.getLeftParenthesisKeyword(),block.getRightParenthesisKeyword());
c.setLinewrap().after(block.getLeftParenthesisKeyword());
c.setLinewrap().before(block.getRightParenthesisKeyword());
Ожидается:
block (
int z;
int a;
int y;
);
if (a = 1)
Фактический результат:
block (int z;
int a;
int y;);
if (a = 1)