blob: 46ab40374b9a8c34d71233e9d5d08845566a7bdc [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2019 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
*******************************************************************************/
/*
* generated by Xtext
*/
package org.eclipse.ocl.xtext.oclstdlib.formatting;
import org.eclipse.ocl.xtext.essentialocl.formatting.AbstractEssentialOCLFormatter;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.AnnotationCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.DocumentationCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.ImportCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.InvCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LambdaTypeCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibClassCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibCoercionCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibIterationCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibOperationCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibPackageCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibPathNameCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibPropertyCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.LibraryElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.PackageCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.PostCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.PreCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.PrecedenceCSElements;
import org.eclipse.ocl.xtext.oclstdlib.services.OCLstdlibGrammarAccess.TypedTypeRefCSElements;
import org.eclipse.xtext.formatting.impl.FormattingConfig;
/**
* This class contains custom formatting description.
*/
public class OCLstdlibFormatter extends AbstractEssentialOCLFormatter {
@Override
protected void configureFormatting(FormattingConfig c) {
c.setAutoLinewrap(132);
OCLstdlibGrammarAccess f = getGrammarAccess();
configureCollectionLiteralExpCS(c, f.getCollectionLiteralExpCSAccess());
configureCollectionTypeCS(c, f.getCollectionTypeCSAccess());
configureCurlyBracketedClauseCS(c, f.getCurlyBracketedClauseCSAccess());
configureElseIfThenExpCS(c, f.getElseIfThenExpCSAccess());
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());
configureNameExpCS(c, f.getNameExpCSAccess());
configureNavigatingCommaArgCS(c, f.getNavigatingCommaArgCSAccess());
configureNavigatingSemiArgCS(c, f.getNavigatingSemiArgCSAccess());
configureNestedExpCS(c, f.getNestedExpCSAccess());
configurePathNameCS(c, f.getPathNameCSAccess());
configurePrimaryExpCS(c, f.getPrimaryExpCSAccess());
configureRoundBracketedClauseCS(c, f.getRoundBracketedClauseCSAccess());
configureSquareBracketedClauseCS(c, f.getSquareBracketedClauseCSAccess());
configureTemplateBindingCS(c, f.getTemplateBindingCSAccess());
configureTemplateSignatureCS(c, f.getTemplateSignatureCSAccess());
configureTupleLiteralExpCS(c, f.getTupleLiteralExpCSAccess());
configureTupleTypeCS(c, f.getTupleTypeCSAccess());
// configureTypedTypeRefCS(c, f.getTypedTypeRefCSAccess());
configureURIPathNameCS(c, f.getURIPathNameCSAccess());
c.setLinewrap(2).before(f.getML_COMMENTRule());
c.setLinewrap(1).after(f.getML_COMMENTRule());
c.setLinewrap(2).between(f.getLibClassCSRule(), f.getLibClassCSRule());
{
AnnotationCSElements a = f.getAnnotationCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_2_0());
c.setNoSpace().before(a.getCommaKeyword_2_2_0());
c.setNoSpace().before(a.getRightParenthesisKeyword_2_3());
setBraces(c, a.getLeftCurlyBracketKeyword_3_0_0(), a.getRightCurlyBracketKeyword_3_0_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_3_1());
}
{
LibClassCSElements a = f.getLibClassCSAccess();
c.setNoSpace().before(a.getCommaKeyword_5_2_0());
setBraces(c, a.getLeftCurlyBracketKeyword_7(), a.getRightCurlyBracketKeyword_9());
}
{
DocumentationCSElements a = f.getDocumentationCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_3_0());
c.setNoSpace().before(a.getCommaKeyword_3_2_0());
c.setNoSpace().before(a.getRightParenthesisKeyword_3_3());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
}
{
ImportCSElements a = f.getImportCSAccess();
c.setLinewrap().before(a.getImportKeyword_0());
c.setNoSpace().around(a.getIsAllColonColonAsteriskKeyword_3_0());
}
{
InvCSElements a = f.getInvCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_1_1_0());
c.setNoSpace().around(a.getRightParenthesisKeyword_1_1_2());
c.setNoSpace().before(a.getColonKeyword_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
}
{
LibCoercionCSElements a = f.getLibCoercionCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_2());
c.setNoSpace().before(a.getRightParenthesisKeyword_3());
c.setLinewrap().before(a.getEqualsSignGreaterThanSignKeyword_6_0());
setBraces(c, a.getLeftCurlyBracketKeyword_7_0_0(), a.getRightCurlyBracketKeyword_7_0_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_7_1());
}
{
LibIterationCSElements a = f.getLibIterationCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
c.setNoSpace().before(a.getCommaKeyword_5_0());
c.setNoSpace().before(a.getSemicolonKeyword_6_0());
c.setNoSpace().before(a.getCommaKeyword_6_2_0());
c.setNoSpace().before(a.getCommaKeyword_7_2_0());
c.setNoSpace().before(a.getRightParenthesisKeyword_8());
c.setLinewrap().before(a.getEqualsSignGreaterThanSignKeyword_13_0());
setBraces(c, a.getLeftCurlyBracketKeyword_14_0_0(), a.getRightCurlyBracketKeyword_14_0_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_14_1());
}
{
LambdaTypeCSElements a = f.getLambdaTypeCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_3());
c.setNoSpace().before(a.getCommaKeyword_4_1_0());
c.setNoSpace().before(a.getRightParenthesisKeyword_5());
}
{
LibraryElements a = f.getLibraryAccess();
setNoSpaceLineWrap(c, a.getSemicolonKeyword_0_1());
// setBraces(c, a.getLeftCurlyBracketKeyword_4(), a.getRightCurlyBracketKeyword_6());
// setNoSpaceLineWrap(c, a.getSemicolonKeyword_5_1_2());
}
{
LibOperationCSElements a = f.getLibOperationCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_4());
c.setNoSpace().before(a.getCommaKeyword_5_1_0());
c.setNoSpace().before(a.getRightParenthesisKeyword_6());
c.setLinewrap().before(a.getEqualsSignGreaterThanSignKeyword_12_0());
setBraces(c, a.getLeftCurlyBracketKeyword_13_0_0(), a.getRightCurlyBracketKeyword_13_0_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_13_1());
}
{
LibPackageCSElements a = f.getLibPackageCSAccess();
// setNoSpaceLineWrap(c, a.getSemicolonKeyword_0_1());
setBraces(c, a.getLeftCurlyBracketKeyword_3(), a.getRightCurlyBracketKeyword_5());
// setNoSpaceLineWrap(c, a.getSemicolonKeyword_5_1_2());
}
{
LibPathNameCSElements a = f.getLibPathNameCSAccess();
c.setNoSpace().around(a.getColonColonKeyword_1_0());
}
{
PackageCSElements a = f.getPackageCSAccess();
setBraces(c, a.getLeftCurlyBracketKeyword_3(), a.getRightCurlyBracketKeyword_5());
}
{
// ParameterCSElements a = f.getParameterCSAccess();
}
{
PostCSElements a = f.getPostCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_1_1_0());
c.setNoSpace().around(a.getRightParenthesisKeyword_1_1_2());
c.setNoSpace().before(a.getColonKeyword_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
}
{
PreCSElements a = f.getPreCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_1_1_0());
c.setNoSpace().around(a.getRightParenthesisKeyword_1_1_2());
c.setNoSpace().before(a.getColonKeyword_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_4());
}
{
PrecedenceCSElements a = f.getPrecedenceCSAccess();
c.setNoSpace().around(a.getColonKeyword_1());
}
{
LibPropertyCSElements a = f.getLibPropertyCSAccess();
c.setLinewrap().before(a.getEqualsSignGreaterThanSignKeyword_6_0());
setBraces(c, a.getLeftCurlyBracketKeyword_7_0_0(), a.getRightCurlyBracketKeyword_7_0_2());
setNoSpaceLineWrap(c, a.getSemicolonKeyword_7_1());
}
{
TypedTypeRefCSElements a = f.getTypedTypeRefCSAccess();
c.setNoSpace().around(a.getLeftParenthesisKeyword_0_1());
c.setNoSpace().before(a.getRightParenthesisKeyword_0_3());
c.setNoSpace().around(a.getLeftParenthesisKeyword_1_1_0());
c.setNoSpace().before(a.getRightParenthesisKeyword_1_1_2());
c.setIndentation(a.getLeftParenthesisKeyword_1_1_0(), a.getRightParenthesisKeyword_1_1_2());
}
{ // comments
c.setNoLinewrap().before(f.getSL_COMMENTRule());
c.setLinewrap().after(f.getSL_COMMENTRule());
c.setLinewrap(2).before(f.getML_COMMENTRule());
c.setLinewrap().after(f.getML_COMMENTRule());
c.setLinewrap(2).before(f.getML_SINGLE_QUOTED_STRINGRule());
c.setLinewrap().after(f.getML_SINGLE_QUOTED_STRINGRule());
}
}
@Override
public OCLstdlibGrammarAccess getGrammarAccess() {
return (OCLstdlibGrammarAccess) super.getGrammarAccess();
}
}