mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-15 16:28:56 +00:00
Merge pull request #42 from eclipse/lb_task_40
Formatter2Fragment2 should generate a better name for multi-references
This commit is contained in:
commit
3ba8751d37
10 changed files with 168 additions and 498 deletions
|
@ -7,36 +7,12 @@ import com.google.inject.Inject
|
|||
import org.eclipse.xtext.formatting2.AbstractFormatter2
|
||||
import org.eclipse.xtext.formatting2.IFormattableDocument
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AliasedRequiredCapability
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AndExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AssignmentExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AtExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.BinaryOpExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CachedExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CallFeature
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CallFunction
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CallNamedFunction
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ChainedExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ClosureParameter
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CreateExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.DefValue
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Expression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.FeatureExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Function
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.GuardExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Model
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.OrExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Parameter
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ParameterDeclaration
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ParameterList
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ProvidedCapability
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.RequiredCapability
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.SimpleTypeRef
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.UnaryOpExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.UnaryPostOpExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.UnaryPreOpExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Unit
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.WithContextExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.WithExpression
|
||||
import org.eclipse.xtext.testlanguages.backtracking.services.BeeLangTestLanguageGrammarAccess
|
||||
|
||||
class BeeLangTestLanguageFormatter extends AbstractFormatter2 {
|
||||
|
@ -45,184 +21,32 @@ class BeeLangTestLanguageFormatter extends AbstractFormatter2 {
|
|||
|
||||
def dispatch void format(Model model, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
for (Unit units : model.getUnits()) {
|
||||
format(units, document);
|
||||
for (Unit unit : model.getUnits()) {
|
||||
unit.format;
|
||||
}
|
||||
for (Function functions : model.getFunctions()) {
|
||||
format(functions, document);
|
||||
for (Function function : model.getFunctions()) {
|
||||
function.format;
|
||||
}
|
||||
}
|
||||
|
||||
def dispatch void format(Unit unit, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
for (SimpleTypeRef _implements : unit.getImplements()) {
|
||||
format(_implements, document);
|
||||
for (SimpleTypeRef simpleTypeRef : unit.getImplements()) {
|
||||
simpleTypeRef.format;
|
||||
}
|
||||
for (ProvidedCapability providedCapabilities : unit.getProvidedCapabilities()) {
|
||||
format(providedCapabilities, document);
|
||||
for (ProvidedCapability providedCapability : unit.getProvidedCapabilities()) {
|
||||
providedCapability.format;
|
||||
}
|
||||
for (AliasedRequiredCapability requiredCapabilities : unit.getRequiredCapabilities()) {
|
||||
format(requiredCapabilities, document);
|
||||
for (AliasedRequiredCapability aliasedRequiredCapability : unit.getRequiredCapabilities()) {
|
||||
aliasedRequiredCapability.format;
|
||||
}
|
||||
for (RequiredCapability metaRequiredCapabilities : unit.getMetaRequiredCapabilities()) {
|
||||
format(metaRequiredCapabilities, document);
|
||||
for (RequiredCapability requiredCapability : unit.getMetaRequiredCapabilities()) {
|
||||
requiredCapability.format;
|
||||
}
|
||||
for (Function functions : unit.getFunctions()) {
|
||||
format(functions, document);
|
||||
for (Function function : unit.getFunctions()) {
|
||||
function.format;
|
||||
}
|
||||
}
|
||||
|
||||
def dispatch void format(ProvidedCapability providedCapability, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(providedCapability.getCondExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(AliasedRequiredCapability aliasedRequiredCapability, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(aliasedRequiredCapability.getCondExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(RequiredCapability requiredCapability, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(requiredCapability.getCondExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(ParameterList parameterList, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
for (Parameter parameters : parameterList.getParameters()) {
|
||||
format(parameters, document);
|
||||
}
|
||||
}
|
||||
|
||||
def dispatch void format(Parameter parameter, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(parameter.getExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(ClosureParameter closureParameter, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(closureParameter.getExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(ParameterDeclaration parameterDeclaration, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(parameterDeclaration.getType(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(Function function, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(function.getReturnType(), document);
|
||||
for (ParameterDeclaration parameters : function.getParameters()) {
|
||||
format(parameters, document);
|
||||
}
|
||||
format(function.getGuard(), document);
|
||||
format(function.getFuncExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(GuardExpression guardExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(guardExpression.getGuardExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(AssignmentExpression assignmentExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(assignmentExpression.getRightExpr(), document);
|
||||
format(assignmentExpression.getLeftExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(DefValue defValue, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(defValue.getType(), document);
|
||||
format(defValue.getValueExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(CachedExpression cachedExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(cachedExpression.getExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(OrExpression orExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(orExpression.getRightExpr(), document);
|
||||
format(orExpression.getLeftExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(AndExpression andExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(andExpression.getRightExpr(), document);
|
||||
format(andExpression.getLeftExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(BinaryOpExpression binaryOpExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(binaryOpExpression.getRightExpr(), document);
|
||||
format(binaryOpExpression.getLeftExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(UnaryOpExpression unaryOpExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(unaryOpExpression.getExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(UnaryPreOpExpression unaryPreOpExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(unaryPreOpExpression.getExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(CallFeature callFeature, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(callFeature.getParameterList(), document);
|
||||
format(callFeature.getFuncExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(AtExpression atExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(atExpression.getIndexExpr(), document);
|
||||
format(atExpression.getObjExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(CallFunction callFunction, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(callFunction.getParameterList(), document);
|
||||
format(callFunction.getFuncExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(WithExpression withExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(withExpression.getFuncExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(WithContextExpression withContextExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(withContextExpression.getExpr(), document);
|
||||
format(withContextExpression.getContextBlock(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(ChainedExpression chainedExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
for (Expression expressions : chainedExpression.getExpressions()) {
|
||||
format(expressions, document);
|
||||
}
|
||||
}
|
||||
|
||||
def dispatch void format(CallNamedFunction callNamedFunction, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(callNamedFunction.getParameterList(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(CreateExpression createExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(createExpression.getParameterList(), document);
|
||||
format(createExpression.getContextBlock(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(UnaryPostOpExpression unaryPostOpExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(unaryPostOpExpression.getExpr(), document);
|
||||
}
|
||||
|
||||
def dispatch void format(FeatureExpression featureExpression, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
format(featureExpression.getObjExpr(), document);
|
||||
}
|
||||
|
||||
// TODO: implement for ProvidedCapability, AliasedRequiredCapability, RequiredCapability, ParameterList, Parameter, ClosureParameter, ParameterDeclaration, Function, GuardExpression, AssignmentExpression, DefValue, CachedExpression, OrExpression, AndExpression, BinaryOpExpression, UnaryOpExpression, UnaryPreOpExpression, CallFeature, AtExpression, CallFunction, WithExpression, WithContextExpression, ChainedExpression, CallNamedFunction, CreateExpression, UnaryPostOpExpression, FeatureExpression
|
||||
}
|
||||
|
|
|
@ -50,7 +50,9 @@ XtextGeneratorLanguage {
|
|||
fragment = builder.BuilderIntegrationFragment2 {}
|
||||
|
||||
// formatter API
|
||||
fragment = formatting.Formatter2Fragment2 {}
|
||||
fragment = formatting.Formatter2Fragment2 {
|
||||
generateXtendStub=true
|
||||
}
|
||||
|
||||
// labeling API
|
||||
fragment = ui.labeling.LabelProviderFragment2 {}
|
||||
|
|
|
@ -52,7 +52,9 @@ XtextGeneratorLanguage {
|
|||
fragment = generator.GeneratorFragment2 auto-inject {}
|
||||
|
||||
// formatter API
|
||||
fragment = formatting.Formatter2Fragment2 auto-inject {}
|
||||
fragment = formatting.Formatter2Fragment2 auto-inject {
|
||||
generateXtendStub=true
|
||||
}
|
||||
|
||||
// labeling API
|
||||
fragment = ui.labeling.LabelProviderFragment2 auto-inject {}
|
||||
|
|
|
@ -16,8 +16,10 @@ class NoJdtTestLanguageFormatter extends AbstractFormatter2 {
|
|||
|
||||
def dispatch void format(Model model, extension IFormattableDocument document) {
|
||||
// TODO: format HiddenRegions around keywords, attributes, cross references, etc.
|
||||
for (Greeting greetings : model.getGreetings()) {
|
||||
format(greetings, document);
|
||||
for (Greeting greeting : model.getGreetings()) {
|
||||
greeting.format;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: implement for
|
||||
}
|
||||
|
|
|
@ -11,37 +11,12 @@ import org.eclipse.xtext.formatting2.AbstractFormatter2;
|
|||
import org.eclipse.xtext.formatting2.IFormattableDocument;
|
||||
import org.eclipse.xtext.resource.XtextResource;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AliasedRequiredCapability;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AndExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AssignmentExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.AtExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.BinaryOpExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CachedExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CallFeature;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CallFunction;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CallNamedFunction;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ChainedExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ClosureParameter;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.CreateExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.DefValue;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Expression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.FeatureExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Function;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.GuardExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Model;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.OrExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Parameter;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ParameterDeclaration;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ParameterList;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.ProvidedCapability;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.RequiredCapability;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.SimpleTypeRef;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.TypeRef;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.UnaryOpExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.UnaryPostOpExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.UnaryPreOpExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.Unit;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.WithContextExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.beeLangTestLanguage.WithExpression;
|
||||
import org.eclipse.xtext.testlanguages.backtracking.services.BeeLangTestLanguageGrammarAccess;
|
||||
import org.eclipse.xtext.xbase.lib.Extension;
|
||||
|
||||
|
@ -53,308 +28,60 @@ public class BeeLangTestLanguageFormatter extends AbstractFormatter2 {
|
|||
|
||||
protected void _format(final Model model, @Extension final IFormattableDocument document) {
|
||||
EList<Unit> _units = model.getUnits();
|
||||
for (final Unit units : _units) {
|
||||
this.format(units, document);
|
||||
for (final Unit unit : _units) {
|
||||
document.<Unit>format(unit);
|
||||
}
|
||||
EList<Function> _functions = model.getFunctions();
|
||||
for (final Function functions : _functions) {
|
||||
this.format(functions, document);
|
||||
for (final Function function : _functions) {
|
||||
document.<Function>format(function);
|
||||
}
|
||||
}
|
||||
|
||||
protected void _format(final Unit unit, @Extension final IFormattableDocument document) {
|
||||
EList<SimpleTypeRef> _implements = unit.getImplements();
|
||||
for (final SimpleTypeRef _implements_1 : _implements) {
|
||||
this.format(_implements_1, document);
|
||||
for (final SimpleTypeRef simpleTypeRef : _implements) {
|
||||
document.<SimpleTypeRef>format(simpleTypeRef);
|
||||
}
|
||||
EList<ProvidedCapability> _providedCapabilities = unit.getProvidedCapabilities();
|
||||
for (final ProvidedCapability providedCapabilities : _providedCapabilities) {
|
||||
this.format(providedCapabilities, document);
|
||||
for (final ProvidedCapability providedCapability : _providedCapabilities) {
|
||||
document.<ProvidedCapability>format(providedCapability);
|
||||
}
|
||||
EList<AliasedRequiredCapability> _requiredCapabilities = unit.getRequiredCapabilities();
|
||||
for (final AliasedRequiredCapability requiredCapabilities : _requiredCapabilities) {
|
||||
this.format(requiredCapabilities, document);
|
||||
for (final AliasedRequiredCapability aliasedRequiredCapability : _requiredCapabilities) {
|
||||
document.<AliasedRequiredCapability>format(aliasedRequiredCapability);
|
||||
}
|
||||
EList<RequiredCapability> _metaRequiredCapabilities = unit.getMetaRequiredCapabilities();
|
||||
for (final RequiredCapability metaRequiredCapabilities : _metaRequiredCapabilities) {
|
||||
this.format(metaRequiredCapabilities, document);
|
||||
for (final RequiredCapability requiredCapability : _metaRequiredCapabilities) {
|
||||
document.<RequiredCapability>format(requiredCapability);
|
||||
}
|
||||
EList<Function> _functions = unit.getFunctions();
|
||||
for (final Function functions : _functions) {
|
||||
this.format(functions, document);
|
||||
for (final Function function : _functions) {
|
||||
document.<Function>format(function);
|
||||
}
|
||||
}
|
||||
|
||||
protected void _format(final ProvidedCapability providedCapability, @Extension final IFormattableDocument document) {
|
||||
Expression _condExpr = providedCapability.getCondExpr();
|
||||
this.format(_condExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final AliasedRequiredCapability aliasedRequiredCapability, @Extension final IFormattableDocument document) {
|
||||
Expression _condExpr = aliasedRequiredCapability.getCondExpr();
|
||||
this.format(_condExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final RequiredCapability requiredCapability, @Extension final IFormattableDocument document) {
|
||||
Expression _condExpr = requiredCapability.getCondExpr();
|
||||
this.format(_condExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final ParameterList parameterList, @Extension final IFormattableDocument document) {
|
||||
EList<Parameter> _parameters = parameterList.getParameters();
|
||||
for (final Parameter parameters : _parameters) {
|
||||
this.format(parameters, document);
|
||||
}
|
||||
}
|
||||
|
||||
protected void _format(final Parameter parameter, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = parameter.getExpr();
|
||||
this.format(_expr, document);
|
||||
}
|
||||
|
||||
protected void _format(final ClosureParameter closureParameter, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = closureParameter.getExpr();
|
||||
this.format(_expr, document);
|
||||
}
|
||||
|
||||
protected void _format(final ParameterDeclaration parameterDeclaration, @Extension final IFormattableDocument document) {
|
||||
TypeRef _type = parameterDeclaration.getType();
|
||||
this.format(_type, document);
|
||||
}
|
||||
|
||||
protected void _format(final Function function, @Extension final IFormattableDocument document) {
|
||||
TypeRef _returnType = function.getReturnType();
|
||||
this.format(_returnType, document);
|
||||
EList<ParameterDeclaration> _parameters = function.getParameters();
|
||||
for (final ParameterDeclaration parameters : _parameters) {
|
||||
this.format(parameters, document);
|
||||
}
|
||||
GuardExpression _guard = function.getGuard();
|
||||
this.format(_guard, document);
|
||||
Expression _funcExpr = function.getFuncExpr();
|
||||
this.format(_funcExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final GuardExpression guardExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _guardExpr = guardExpression.getGuardExpr();
|
||||
this.format(_guardExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final AssignmentExpression assignmentExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _rightExpr = assignmentExpression.getRightExpr();
|
||||
this.format(_rightExpr, document);
|
||||
Expression _leftExpr = assignmentExpression.getLeftExpr();
|
||||
this.format(_leftExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final DefValue defValue, @Extension final IFormattableDocument document) {
|
||||
TypeRef _type = defValue.getType();
|
||||
this.format(_type, document);
|
||||
Expression _valueExpr = defValue.getValueExpr();
|
||||
this.format(_valueExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final CachedExpression cachedExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = cachedExpression.getExpr();
|
||||
this.format(_expr, document);
|
||||
}
|
||||
|
||||
protected void _format(final OrExpression orExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _rightExpr = orExpression.getRightExpr();
|
||||
this.format(_rightExpr, document);
|
||||
Expression _leftExpr = orExpression.getLeftExpr();
|
||||
this.format(_leftExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final AndExpression andExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _rightExpr = andExpression.getRightExpr();
|
||||
this.format(_rightExpr, document);
|
||||
Expression _leftExpr = andExpression.getLeftExpr();
|
||||
this.format(_leftExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final BinaryOpExpression binaryOpExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _rightExpr = binaryOpExpression.getRightExpr();
|
||||
this.format(_rightExpr, document);
|
||||
Expression _leftExpr = binaryOpExpression.getLeftExpr();
|
||||
this.format(_leftExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final UnaryOpExpression unaryOpExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = unaryOpExpression.getExpr();
|
||||
this.format(_expr, document);
|
||||
}
|
||||
|
||||
protected void _format(final UnaryPreOpExpression unaryPreOpExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = unaryPreOpExpression.getExpr();
|
||||
this.format(_expr, document);
|
||||
}
|
||||
|
||||
protected void _format(final CallFeature callFeature, @Extension final IFormattableDocument document) {
|
||||
ParameterList _parameterList = callFeature.getParameterList();
|
||||
this.format(_parameterList, document);
|
||||
Expression _funcExpr = callFeature.getFuncExpr();
|
||||
this.format(_funcExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final AtExpression atExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _indexExpr = atExpression.getIndexExpr();
|
||||
this.format(_indexExpr, document);
|
||||
Expression _objExpr = atExpression.getObjExpr();
|
||||
this.format(_objExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final CallFunction callFunction, @Extension final IFormattableDocument document) {
|
||||
ParameterList _parameterList = callFunction.getParameterList();
|
||||
this.format(_parameterList, document);
|
||||
Expression _funcExpr = callFunction.getFuncExpr();
|
||||
this.format(_funcExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final WithExpression withExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _funcExpr = withExpression.getFuncExpr();
|
||||
this.format(_funcExpr, document);
|
||||
}
|
||||
|
||||
protected void _format(final WithContextExpression withContextExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = withContextExpression.getExpr();
|
||||
this.format(_expr, document);
|
||||
Expression _contextBlock = withContextExpression.getContextBlock();
|
||||
this.format(_contextBlock, document);
|
||||
}
|
||||
|
||||
protected void _format(final ChainedExpression chainedExpression, @Extension final IFormattableDocument document) {
|
||||
EList<Expression> _expressions = chainedExpression.getExpressions();
|
||||
for (final Expression expressions : _expressions) {
|
||||
this.format(expressions, document);
|
||||
}
|
||||
}
|
||||
|
||||
protected void _format(final CallNamedFunction callNamedFunction, @Extension final IFormattableDocument document) {
|
||||
ParameterList _parameterList = callNamedFunction.getParameterList();
|
||||
this.format(_parameterList, document);
|
||||
}
|
||||
|
||||
protected void _format(final CreateExpression createExpression, @Extension final IFormattableDocument document) {
|
||||
ParameterList _parameterList = createExpression.getParameterList();
|
||||
this.format(_parameterList, document);
|
||||
Expression _contextBlock = createExpression.getContextBlock();
|
||||
this.format(_contextBlock, document);
|
||||
}
|
||||
|
||||
protected void _format(final UnaryPostOpExpression unaryPostOpExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _expr = unaryPostOpExpression.getExpr();
|
||||
this.format(_expr, document);
|
||||
}
|
||||
|
||||
protected void _format(final FeatureExpression featureExpression, @Extension final IFormattableDocument document) {
|
||||
Expression _objExpr = featureExpression.getObjExpr();
|
||||
this.format(_objExpr, document);
|
||||
}
|
||||
|
||||
public void format(final Object callNamedFunction, final IFormattableDocument document) {
|
||||
if (callNamedFunction instanceof XtextResource) {
|
||||
_format((XtextResource)callNamedFunction, document);
|
||||
public void format(final Object model, final IFormattableDocument document) {
|
||||
if (model instanceof XtextResource) {
|
||||
_format((XtextResource)model, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof CallNamedFunction) {
|
||||
_format((CallNamedFunction)callNamedFunction, document);
|
||||
} else if (model instanceof Model) {
|
||||
_format((Model)model, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof AndExpression) {
|
||||
_format((AndExpression)callNamedFunction, document);
|
||||
} else if (model instanceof Unit) {
|
||||
_format((Unit)model, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof AssignmentExpression) {
|
||||
_format((AssignmentExpression)callNamedFunction, document);
|
||||
} else if (model instanceof EObject) {
|
||||
_format((EObject)model, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof AtExpression) {
|
||||
_format((AtExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof BinaryOpExpression) {
|
||||
_format((BinaryOpExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof CachedExpression) {
|
||||
_format((CachedExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof CallFeature) {
|
||||
_format((CallFeature)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof CallFunction) {
|
||||
_format((CallFunction)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof ChainedExpression) {
|
||||
_format((ChainedExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof ClosureParameter) {
|
||||
_format((ClosureParameter)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof CreateExpression) {
|
||||
_format((CreateExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof DefValue) {
|
||||
_format((DefValue)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof FeatureExpression) {
|
||||
_format((FeatureExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof Function) {
|
||||
_format((Function)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof OrExpression) {
|
||||
_format((OrExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof UnaryOpExpression) {
|
||||
_format((UnaryOpExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof UnaryPostOpExpression) {
|
||||
_format((UnaryPostOpExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof UnaryPreOpExpression) {
|
||||
_format((UnaryPreOpExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof WithContextExpression) {
|
||||
_format((WithContextExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof WithExpression) {
|
||||
_format((WithExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof AliasedRequiredCapability) {
|
||||
_format((AliasedRequiredCapability)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof GuardExpression) {
|
||||
_format((GuardExpression)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof Model) {
|
||||
_format((Model)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof Parameter) {
|
||||
_format((Parameter)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof ParameterDeclaration) {
|
||||
_format((ParameterDeclaration)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof ParameterList) {
|
||||
_format((ParameterList)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof ProvidedCapability) {
|
||||
_format((ProvidedCapability)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof RequiredCapability) {
|
||||
_format((RequiredCapability)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof Unit) {
|
||||
_format((Unit)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction instanceof EObject) {
|
||||
_format((EObject)callNamedFunction, document);
|
||||
return;
|
||||
} else if (callNamedFunction == null) {
|
||||
} else if (model == null) {
|
||||
_format((Void)null, document);
|
||||
return;
|
||||
} else if (callNamedFunction != null) {
|
||||
_format(callNamedFunction, document);
|
||||
} else if (model != null) {
|
||||
_format(model, document);
|
||||
return;
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unhandled parameter types: " +
|
||||
Arrays.<Object>asList(callNamedFunction, document).toString());
|
||||
Arrays.<Object>asList(model, document).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,8 +23,8 @@ public class NoJdtTestLanguageFormatter extends AbstractFormatter2 {
|
|||
|
||||
protected void _format(final Model model, @Extension final IFormattableDocument document) {
|
||||
EList<Greeting> _greetings = model.getGreetings();
|
||||
for (final Greeting greetings : _greetings) {
|
||||
this.format(greetings, document);
|
||||
for (final Greeting greeting : _greetings) {
|
||||
document.<Greeting>format(greeting);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016 itemis AG (http://www.itemis.eu) and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*******************************************************************************/
|
||||
package org.eclipse.xtext.xtext.generator
|
||||
|
||||
import org.eclipse.emf.ecore.ENamedElement
|
||||
import org.eclipse.emf.ecore.EcorePackage
|
||||
import org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
|
||||
import org.junit.Test
|
||||
|
||||
import static extension org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* @author Lorenzo Bettini - Initial contribution and API
|
||||
*/
|
||||
class Formatter2Fragment2Test {
|
||||
|
||||
var TestableFormatter2Fragment2 fragment = new TestableFormatter2Fragment2
|
||||
|
||||
static class TestableFormatter2Fragment2 extends Formatter2Fragment2 {
|
||||
|
||||
override public toVarName(ENamedElement element) {
|
||||
super.toVarName(element)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test def void testVarNameWithEClass() {
|
||||
"eClass".assertEquals(fragment.toVarName(EcorePackage.eINSTANCE.EClass))
|
||||
}
|
||||
|
||||
@Test def void testVarNameWithMultiReference() {
|
||||
"eOperation".assertEquals(fragment.toVarName(EcorePackage.eINSTANCE.EClass_EAllOperations))
|
||||
}
|
||||
|
||||
@Test def void testVarNameWithSingleReference() {
|
||||
"name".assertEquals(fragment.toVarName(EcorePackage.eINSTANCE.ENamedElement_Name))
|
||||
}
|
||||
|
||||
@Test def void testVarNameConflictingWithXtendKeyword() {
|
||||
"_abstract".assertEquals(fragment.toVarName(EcorePackage.eINSTANCE.EClass_Abstract))
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* Copyright (c) 2016 itemis AG (http://www.itemis.eu) and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*/
|
||||
package org.eclipse.xtext.xtext.generator;
|
||||
|
||||
import org.eclipse.emf.ecore.EAttribute;
|
||||
import org.eclipse.emf.ecore.EClass;
|
||||
import org.eclipse.emf.ecore.ENamedElement;
|
||||
import org.eclipse.emf.ecore.EReference;
|
||||
import org.eclipse.emf.ecore.EcorePackage;
|
||||
import org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Lorenzo Bettini - Initial contribution and API
|
||||
*/
|
||||
@SuppressWarnings("all")
|
||||
public class Formatter2Fragment2Test {
|
||||
public static class TestableFormatter2Fragment2 extends Formatter2Fragment2 {
|
||||
@Override
|
||||
public String toVarName(final ENamedElement element) {
|
||||
return super.toVarName(element);
|
||||
}
|
||||
}
|
||||
|
||||
private Formatter2Fragment2Test.TestableFormatter2Fragment2 fragment = new Formatter2Fragment2Test.TestableFormatter2Fragment2();
|
||||
|
||||
@Test
|
||||
public void testVarNameWithEClass() {
|
||||
EClass _eClass = EcorePackage.eINSTANCE.getEClass();
|
||||
String _varName = this.fragment.toVarName(_eClass);
|
||||
Assert.assertEquals("eClass", _varName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVarNameWithMultiReference() {
|
||||
EReference _eClass_EAllOperations = EcorePackage.eINSTANCE.getEClass_EAllOperations();
|
||||
String _varName = this.fragment.toVarName(_eClass_EAllOperations);
|
||||
Assert.assertEquals("eOperation", _varName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVarNameWithSingleReference() {
|
||||
EAttribute _eNamedElement_Name = EcorePackage.eINSTANCE.getENamedElement_Name();
|
||||
String _varName = this.fragment.toVarName(_eNamedElement_Name);
|
||||
Assert.assertEquals("name", _varName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVarNameConflictingWithXtendKeyword() {
|
||||
EAttribute _eClass_Abstract = EcorePackage.eINSTANCE.getEClass_Abstract();
|
||||
String _varName = this.fragment.toVarName(_eClass_Abstract);
|
||||
Assert.assertEquals("_abstract", _varName);
|
||||
}
|
||||
}
|
|
@ -159,6 +159,8 @@ import org.eclipse.xtext.util.internal.Log
|
|||
}
|
||||
|
||||
protected def String toVarName(ENamedElement element) {
|
||||
if (element instanceof EReference)
|
||||
return element.EReferenceType.toVarName
|
||||
val name = element.name.toFirstLower
|
||||
if (XtendFileAccess.XTEND_KEYWORDS.contains(name))
|
||||
'_' + name
|
||||
|
|
|
@ -356,6 +356,10 @@ public class Formatter2Fragment2 extends AbstractStubGeneratingFragment {
|
|||
protected String toVarName(final ENamedElement element) {
|
||||
String _xblockexpression = null;
|
||||
{
|
||||
if ((element instanceof EReference)) {
|
||||
EClass _eReferenceType = ((EReference)element).getEReferenceType();
|
||||
return this.toVarName(_eReferenceType);
|
||||
}
|
||||
String _name = element.getName();
|
||||
final String name = StringExtensions.toFirstLower(_name);
|
||||
String _xifexpression = null;
|
||||
|
|
Loading…
Reference in a new issue