| /*******************************************************************************
|
| * Copyright (c) 2014, 2020 Willink Transformations and others.
|
| * All rights reserved. This program and the accompanying materials
|
| * are made available under the terms of the Eclipse Public License v2.0
|
| * which accompanies this distribution, and is available at
|
| * http://www.eclipse.org/legal/epl-v20.html
|
| *
|
| * Contributors:
|
| * E.D.Willink - initial API and implementation
|
| *******************************************************************************/ |
| package org.eclipse.qvtd.xtext.qvtrelation.formatting;
|
|
|
| import org.eclipse.qvtd.xtext.qvtbase.formatting.QVTbaseFormatter;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.CollectionTemplateCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.DefaultValueCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.DomainCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.KeyDeclCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.ModelDeclCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.ObjectTemplateCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.PredicateCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.PrimitiveTypeDomainCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.PropertyTemplateCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.QualifiedPackageCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.QueryCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.RelationCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.ScopeNameCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.TemplateCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.TopLevelCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.TransformationCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.UnitCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.VarDeclarationCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.WhenCSElements;
|
| import org.eclipse.qvtd.xtext.qvtrelation.services.QVTrelationGrammarAccess.WhereCSElements;
|
| import org.eclipse.xtext.formatting.impl.FormattingConfig;
|
|
|
| /**
|
| * This class contains custom formatting description.
|
| *
|
| * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
|
| * on how and when to use it
|
| *
|
| * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
|
| */
|
| public class QVTrelationFormatter extends QVTbaseFormatter
|
| {
|
| @Override
|
| protected void configureFormatting(FormattingConfig c) {
|
| c.setAutoLinewrap(120);
|
|
|
| QVTrelationGrammarAccess f = getGrammarAccess();
|
|
|
| configureAttributeCS(c, f.getAttributeCSAccess());
|
| configureCollectionLiteralExpCS(c, f.getCollectionLiteralExpCSAccess());
|
| configureCollectionTypeCS(c, f.getCollectionTypeCSAccess());
|
| configureCompoundTargetElementCS(c, f.getCompoundTargetElementCSAccess());
|
| configureCurlyBracketedClauseCS(c, f.getCurlyBracketedClauseCSAccess());
|
| configureDataTypeCS(c, f.getDataTypeCSAccess());
|
| configureEnumerationCS(c, f.getEnumerationCSAccess());
|
| configureEnumerationLiteralCS(c, f.getEnumerationLiteralCSAccess());
|
| configureEssentialOCLNavigationOperatorCS(c, f.getEssentialOCLNavigationOperatorNameAccess());
|
| configureExpCS(c, f.getExpCSAccess());
|
| configureIfExpCS(c, f.getIfExpCSAccess());
|
| configureLetExpCS(c, f.getLetExpCSAccess());
|
| configureMapLiteralExpCS(c, f.getMapLiteralExpCSAccess());
|
| configureMapTypeCS(c, f.getMapTypeCSAccess());
|
| configureMultiplicityBoundsCS(c, f.getMultiplicityBoundsCSAccess());
|
| configureMultiplicityCS(c, f.getMultiplicityCSAccess());
|
| configureMultiplicityStringCS(c, f.getMultiplicityStringCSAccess());
|
| configureNavigatingCommaArgCS(c, f.getNavigatingCommaArgCSAccess());
|
| configureNavigatingSemiArgCS(c, f.getNavigatingSemiArgCSAccess());
|
| configureNestedExpCS(c, f.getNestedExpCSAccess());
|
| configureOperationCS(c, f.getOperationCSAccess());
|
| configureParameterCS(c, f.getParameterCSAccess());
|
| configurePathNameCS(c, f.getPathNameCSAccess());
|
| configurePrimaryExpCS(c, f.getPrimaryExpCSAccess());
|
| configureReferenceCS(c, f.getReferenceCSAccess());
|
| configureRoundBracketedClauseCS(c, f.getRoundBracketedClauseCSAccess());
|
| configureSimpleTargetElementCS(c, f.getSimpleTargetElementCSAccess());
|
| configureSquareBracketedClauseCS(c, f.getSquareBracketedClauseCSAccess());
|
| configureStructuredClassCS(c, f.getStructuredClassCSAccess());
|
| configureTargetCS(c, f.getTargetCSAccess());
|
| configureTupleLiteralExpCS(c, f.getTupleLiteralExpCSAccess());
|
| configureTupleTypeCS(c, f.getTupleTypeCSAccess());
|
| // configureTypedTypeRefCS(c, f.getTypedTypeRefCSAccess());
|
| configureURIPathNameCS(c, f.getURIPathNameCSAccess());
|
|
|
| c.setLinewrap(0, 1, 2).before(f.getSL_COMMENTRule());
|
| c.setLinewrap(0, 1, 1).after(f.getSL_COMMENTRule());
|
| c.setLinewrap(0, 1, 2).before(f.getML_COMMENTRule());
|
| c.setLinewrap(0, 1, 1).after(f.getML_COMMENTRule());
|
|
|
| {
|
| CollectionTemplateCSElements a = f.getCollectionTemplateCSAccess();
|
| c.setLinewrap(1).before(a.getOwnedMemberIdentifiersAssignment_3_1_0());
|
| c.setLinewrap(1).before(a.getOwnedMemberIdentifiersAssignment_3_1_1_1());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_3_0(), a.getRightCurlyBracketKeyword_3_2());
|
| setAppendedBraces(c, a.getLeftCurlyBracketKeyword_3_0(), a.getRightCurlyBracketKeyword_3_2());
|
| c.setNoSpace().before(a.getCommaKeyword_3_1_1_0());
|
| // c.setLinewrap(0).before(a.getPlusSignPlusSignKeyword_4_2());
|
| }
|
| {
|
| DefaultValueCSElements a = f.getDefaultValueCSAccess();
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_3());
|
| }
|
| {
|
| DomainCSElements a = f.getDomainCSAccess();
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_5_1(), a.getRightCurlyBracketKeyword_5_3());
|
| setAppendedBraces(c, a.getLeftCurlyBracketKeyword_5_1(), a.getRightCurlyBracketKeyword_5_3());
|
| setNoSpaceLineWrap(c, a.getCommaKeyword_3_1_0());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_6());
|
| }
|
| {
|
| KeyDeclCSElements a = f.getKeyDeclCSAccess();
|
| c.setNoSpace().around(a.getLeftCurlyBracketKeyword_2());
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_3_1_1());
|
| c.setNoSpace().before(a.getRightParenthesisKeyword_3_1_3());
|
| c.setNoSpace().before(a.getCommaKeyword_4_0());
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_4_1_1_1());
|
| c.setNoSpace().before(a.getRightParenthesisKeyword_4_1_1_3());
|
| c.setNoSpace().around(a.getRightCurlyBracketKeyword_5());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_6());
|
| }
|
| {
|
| ModelDeclCSElements a = f.getModelDeclCSAccess();
|
| c.setNoSpace().after(a.getLeftCurlyBracketKeyword_2_1_0());
|
| c.setNoSpace().before(a.getCommaKeyword_2_1_2_0());
|
| c.setNoSpace().before(a.getRightCurlyBracketKeyword_2_1_3());
|
| c.setNoSpace().after(a.getLeftCurlyBracketKeyword_3_1_1_0());
|
| c.setNoSpace().before(a.getCommaKeyword_3_1_1_1_1_0());
|
| c.setNoSpace().before(a.getRightCurlyBracketKeyword_3_1_1_2());
|
| c.setNoSpace().after(a.getLeftCurlyBracketKeyword_4_1_1_0());
|
| c.setNoSpace().before(a.getCommaKeyword_4_1_1_1_1_0());
|
| c.setNoSpace().before(a.getRightCurlyBracketKeyword_4_1_1_2());
|
| }
|
| {
|
| ObjectTemplateCSElements a = f.getObjectTemplateCSAccess();
|
| c.setLinewrap(1).before(a.getOwnedPropertyTemplatesAssignment_3_1_0());
|
| c.setLinewrap(1).before(a.getOwnedPropertyTemplatesAssignment_3_1_1_1());
|
| // c.setNoSpace().before(a.getLeftCurlyBracketKeyword_3());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_3_0(), a.getRightCurlyBracketKeyword_3_2());
|
| setAppendedBraces(c, a.getLeftCurlyBracketKeyword_3_0(), a.getRightCurlyBracketKeyword_3_2());
|
| c.setNoSpace().before(a.getCommaKeyword_3_1_1_0());
|
| }
|
| {
|
| PredicateCSElements a = f.getPredicateCSAccess();
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_1());
|
| }
|
| {
|
| PrimitiveTypeDomainCSElements a = f.getPrimitiveTypeDomainCSAccess();
|
| setNoSpaceLineWrap(c, a.getCommaKeyword_3_0());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
|
| }
|
| {
|
| PropertyTemplateCSElements a = f.getPropertyTemplateCSAccess();
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_0_1_1());
|
| c.setNoSpace().before(a.getRightParenthesisKeyword_0_1_3());
|
| }
|
| {
|
| QualifiedPackageCSElements a = f.getQualifiedPackageCSAccess();
|
| c.setLinewrap(2).before(a.getGroup());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_5_0_0(), a.getRightCurlyBracketKeyword_5_0_2());
|
| setBraces(c, a.getLeftCurlyBracketKeyword_5_0_0(), a.getRightCurlyBracketKeyword_5_0_2());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_5_1());
|
| }
|
| {
|
| QueryCSElements a = f.getQueryCSAccess();
|
| c.setLinewrap(2).before(a.getGroup());
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
|
| c.setNoSpace().before(a.getCommaKeyword_4_1_0());
|
| c.setNoSpace().before(a.getRightParenthesisKeyword_5());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_8_0());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_8_1_0(), a.getRightCurlyBracketKeyword_8_1_2());
|
| setBraces(c, a.getLeftCurlyBracketKeyword_8_1_0(), a.getRightCurlyBracketKeyword_8_1_2());
|
| c.setIndentation(a.getLeftParenthesisKeyword_3(), a.getRightParenthesisKeyword_5());
|
| }
|
| {
|
| RelationCSElements a = f.getRelationCSAccess();
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_5(), a.getRightCurlyBracketKeyword_10());
|
| setBraces(c, a.getLeftCurlyBracketKeyword_5(), a.getRightCurlyBracketKeyword_10());
|
| c.setLinewrap(1).between(a.getOwnedVarDeclarationsAssignment_6(), a.getAlternatives_7());
|
| c.setLinewrap(1).between(a.getAlternatives_7(), a.getAlternatives_7());
|
| c.setLinewrap(1).between(a.getAlternatives_7(), a.getOwnedWhenAssignment_8());
|
| c.setLinewrap(1).between(a.getOwnedWhenAssignment_8(), a.getOwnedWhereAssignment_9());
|
| }
|
| {
|
| ScopeNameCSElements a = f.getScopeNameCSAccess();
|
| c.setNoSpace().around(a.getColonColonKeyword_1());
|
| c.setNoSpace().around(a.getColonColonKeyword_2_1());
|
| }
|
| {
|
| TemplateCSElements a = f.getTemplateCSAccess();
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_1_0(), a.getRightCurlyBracketKeyword_1_2());
|
| setAppendedBraces(c, a.getLeftCurlyBracketKeyword_1_0(), a.getRightCurlyBracketKeyword_1_2());
|
| }
|
| {
|
| TopLevelCSElements a = f.getTopLevelCSAccess();
|
| // c.setLinewrap(2).before(a.getAlternatives_1());
|
| c.setLinewrap(2).between(a.getOwnedImportsAssignment_0(), a.getAlternatives_1());
|
| }
|
| {
|
| TransformationCSElements a = f.getTransformationCSAccess();
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
|
| c.setNoSpace().before(a.getCommaKeyword_5_0());
|
| c.setNoSpace().before(a.getRightParenthesisKeyword_6());
|
| c.setLinewrap(1).before(a.getOwnedTargetsAssignment_9());
|
| c.setNoSpace().before(a.getCommaKeyword_7_2_0());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_8(), a.getRightCurlyBracketKeyword_12());
|
| setBraces(c, a.getLeftCurlyBracketKeyword_8(), a.getRightCurlyBracketKeyword_12());
|
| c.setLinewrap(2).between(a.getOwnedTargetsAssignment_9(), a.getOwnedKeyDeclsAssignment_10());
|
| c.setLinewrap(2).between(a.getOwnedTargetsAssignment_9(), a.getAlternatives_11());
|
| c.setLinewrap(2).between(a.getOwnedKeyDeclsAssignment_10(), a.getAlternatives_11());
|
| c.setLinewrap(2).between(a.getAlternatives_11(), a.getAlternatives_11());
|
| c.setIndentation(a.getLeftParenthesisKeyword_3(), a.getRightParenthesisKeyword_6());
|
| }
|
| {
|
| UnitCSElements a = f.getUnitCSAccess();
|
| c.setNoSpace().around(a.getColonColonKeyword_3_0());
|
| c.setNoSpace().around(a.getIsAllAsteriskKeyword_3_1_0());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
|
| }
|
| {
|
| VarDeclarationCSElements a = f.getVarDeclarationCSAccess();
|
| c.setNoSpace().before(a.getCommaKeyword_1_0());
|
| setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
|
| }
|
| {
|
| WhenCSElements a = f.getWhenCSAccess();
|
| c.setLinewrap(1).before(a.getOwnedPredicatesAssignment_3());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_2(), a.getRightCurlyBracketKeyword_4());
|
| setAppendedBraces(c, a.getLeftCurlyBracketKeyword_2(), a.getRightCurlyBracketKeyword_4());
|
| }
|
| {
|
| WhereCSElements a = f.getWhereCSAccess();
|
| c.setLinewrap(1).before(a.getOwnedPredicatesAssignment_3());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_2(), a.getRightCurlyBracketKeyword_4());
|
| setAppendedBraces(c, a.getLeftCurlyBracketKeyword_2(), a.getRightCurlyBracketKeyword_4());
|
| }
|
| }
|
| /*
|
| {
|
| TransformationCSElements a = f.getTransformationCSAccess();
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
|
| c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
|
| c.setNoSpace().before(a.getCommaKeyword_5_0());
|
| c.setNoSpace().before(a.getRightParenthesisKeyword_6());
|
| c.setNoSpace().between(a.getLeftCurlyBracketKeyword_8(), a.getRightCurlyBracketKeyword_11());
|
| setBraces(c, a.getLeftCurlyBracketKeyword_8(), a.getRightCurlyBracketKeyword_11());
|
| c.setLinewrap(2).between(a.getOwnedKeyDeclsAssignment_9(), a.getAlternatives_10());
|
| c.setLinewrap(2).between(a.getAlternatives_10(), a.getAlternatives_10());
|
| c.setIndentation(a.getLeftParenthesisKeyword_3(), a.getRightParenthesisKeyword_6());
|
| }
|
| */
|
|
|
| @Override
|
| public QVTrelationGrammarAccess getGrammarAccess() {
|
| return (QVTrelationGrammarAccess) super.getGrammarAccess();
|
| }
|
| }
|