Custom xtext formatter [message #1454354] |
Tue, 28 October 2014 05:21  |
Eclipse User |
|
|
|
I could not reply/edit messages in my previous topic (sent message to moderator) and because of that I have created a new one.
=====
My xtext grammar looks this:
Generated code:
public interface Foo extends EObject
{
EList<Bar> getBars();
}
There are a lot of Bar elements in my grammar:
Bar:
Bar1 |
Bar2 |
Bar3
Bar1:
'keyword1'
Bar2:
'keyword2'
But Bar3 elements is different one
Bar3 returns Bar:
{Bar3} someVariableName=Expression
Expression: {Expression}:
'Expr'
And for example we have text:
Xtext AST model will looks like next nodes:
1. LeafNode(grammarElement Bar1.keyword1)
2. LeafNode(grammarElement Bar2.keyword2)
3. LeafNode(grammarElement ParseRule stuff for Expression element)
It means that I could not build AbstractDeclarativeFormatter for my grammar if I want to have \n for each Bar element in Foo. Because my rule for Bar3 statement, but in AST there is no elements for this.
c.setLinewrap(1).before(f.bar_Bar1.forKeyword1_0)
c.setLinewrap(1).before(f.bar_Bar2.forKeyword2_0)
c.setLinewrap(1).before(f.bar_Bar3.expressionExpression_ Bar3ParserRuleCall_1_0)
Also I could not write basic rule for Expression element because expressions can be nested.
Does it mean what I need to write my custom formatter?
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.32830 seconds