For the following part we will refer to a concrete example grammar in order to explain certain aspect of the UI more clearly. The used example grammar is as follows:
grammar org.eclipse.text.documentation.Sample
with org.eclipse.xtext.common.Terminals
generate gen 'http://www.eclipse.org/xtext/documentation/Sample' as gen
Model :
"model" intAttribute=INT (stringDescription=STRING)? "{"
(rules += AbstractRule)*
"}"
;
AbstractRule:
RuleA | RuleB
;
RuleA :
"RuleA" "(" name = ID ")" ;
RuleB return gen::CustomType:
"RuleB" "(" ruleA = [RuleA] ")" ;