xpand - How to configure Xtext mwe.Reader to fill the root element in a slot -
i using xtext 2.0 mwe 1 , xpand, guess problem mwe 2 , xtend same.
my xtext grammer looks (excerpt):
grammer org.test.test org.eclipse.xtext.common.terminals generate test "http://www.test.org/test/test model : "common stuff" "{" (formatterdefs+=formatterdef)* "}" ... formatterdef : "formatter" name=id ":" formatter=string;
when use mwe definiton (excerpt):
<component class="org.eclipse.xtext.mwe.reader" path="${project.src.directory}/xtext/model/" > <register class="org.test.teststandalonesetup"/> <load slot='formatterdefs' type='formatterdef'/> </component> <component class="org.eclipse.xpand2.generator"> <metamodel class="org.eclipse.xtend.typesystem.emf.emfregistrymetamodel"/> <expand value="templates::formatter::formattertxt foreach formatterdefs"/> </component>
so slot formatterdefs
filled formaterdef
, , used template, , every think works fine.
but have templates requires model root element, named model
in grammar. tryed use
<load slot='formatterdefs' type='formatterdef'/>
and
<expand value="templates::main::main foreach model"/>
instead.
but warning:
org.eclipse.xtext.mwe.slotentry - not find exported element of type 'model' -> slot 'model' empty.
and slot contains empty list.
so question is: what need do, root model
templates?
i meant like
public class mydslnameprovider extends defaultdeclarativequalifiednameprovider { qualifiedname qualifiedname(model m) { return qualifiedname.create(m.eresource().geturi().tostring()); } } public class mydslruntimemodule extends org.xtext.example.mydsl.abstractmydslruntimemodule { @override public class<? extends iqualifiednameprovider> bindiqualifiednameprovider() { return mydslnameprovider.class; } }
Comments
Post a Comment