/*
* generated by Xtext
*/
package org.eclipse.xtext.xdoc.formatting;
import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
import org.eclipse.xtext.formatting.impl.FormattingConfig;
import org.eclipse.xtext.xdoc.services.XdocGrammarAccess;
/**
* 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 XdocFormatter extends AbstractDeclarativeFormatter {
@Override
protected void configureFormatting(FormattingConfig c) {
XdocGrammarAccess grammarAccess = (XdocGrammarAccess) getGrammarAccess();
c.setAutoLinewrap(120);
c.setLinewrap(2, 2, 3).between(grammarAccess.getTextOrMarkupRule(), grammarAccess.getTextOrMarkupRule());
c.setNoSpace().around(grammarAccess.getWSRule());
c.setNoSpace().around(grammarAccess.getANY_WSRule());
c.setNoSpace().around(grammarAccess.getMULTI_NLRule());
configureChapter(c, grammarAccess);
configureSection(c, grammarAccess);
configureSection2(c, grammarAccess);
configureSection3(c, grammarAccess);
configureSection4(c, grammarAccess);
configureCodeBlock(c, grammarAccess);
configureCodeRef(c, grammarAccess);
configureRef(c,grammarAccess);
configureEm(c, grammarAccess);
configureTextPart(c, grammarAccess);
configureTables(c, grammarAccess);
configureLists(c, grammarAccess);
}
private void configureCodeRef(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().around(grammarAccess.getCodeRefAccess().getCodeRefKeyword_1());
c.setNoSpace().around(grammarAccess.getCodeRefAccess().getRightSquareBracketKeyword_3());
}
private void configureTables(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setIndentationIncrement().after(grammarAccess.getTableAccess().getTableKeyword_1());
c.setIndentationDecrement().before(grammarAccess.getTableAccess().getRightSquareBracketKeyword_4());
c.setNoSpace().after(grammarAccess.getTableRowAccess().getTrKeyword_1());
c.setNoSpace().around(grammarAccess.getTableRowAccess().getRightSquareBracketKeyword_4());
c.setNoSpace().after(grammarAccess.getTableDataAccess().getTdKeyword_1());
// c.setNoSpace().after(grammarAccess.getTableDataAccess().getGroup_2());
c.setNoSpace().before(grammarAccess.getTableDataAccess().getRightSquareBracketKeyword_3());
}
private void configureLists(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setIndentationIncrement().after(grammarAccess.getItemAccess().getItemKeyword_1());
c.setIndentationDecrement().before(grammarAccess.getItemAccess().getRightSquareBracketKeyword_3());
c.setIndentationIncrement().before(grammarAccess.getItemAccess().getItemKeyword_1());
c.setIndentationDecrement().after(grammarAccess.getItemAccess().getRightSquareBracketKeyword_3());
// c.setIndentationIncrement().after(grammarAccess.getOrderedListAccess().getOlKeyword_1());
// c.setIndentationDecrement().before(grammarAccess.getOrderedListAccess().getRightSquareBracketKeyword_4());
//
// c.setIndentationIncrement().after(grammarAccess.getUnorderedListAccess().getUlKeyword_1());
// c.setIndentationDecrement().before(grammarAccess.getUnorderedListAccess().getRightSquareBracketKeyword_4());
c.setNoSpace().around(grammarAccess.getItemRule());
c.setLinewrap(1,2,2).between(grammarAccess.getItemRule(), grammarAccess.getItemRule());
// c.setLinewrap(1,1,1).after(grammarAccess.getItemAccess().getItemKeyword_1());
c.setLinewrap(0,1,1).before(grammarAccess.getItemAccess().getRightSquareBracketKeyword_3());
}
private void configureTextPart(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().before(grammarAccess.getTextPartRule());
}
private void configureRef(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().around(grammarAccess.getRefAccess().getRefKeyword_0());
c.setNoSpace().around(grammarAccess.getRefAccess().getLeftSquareBracketKeyword_2_0());
c.setNoSpace().before(grammarAccess.getRefAccess().getRightSquareBracketKeyword_2_3());
}
private void configureCodeBlock(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoLinewrap().between(grammarAccess.getCodeBlockAccess().getLeftSquareBracketKeyword_2_5(), grammarAccess.getCodeBlockAccess().getRightSquareBracketKeyword_4());
c.setNoSpace().around(grammarAccess.getCodeBlockAccess().getLeftSquareBracketKeyword_2_5());
c.setNoSpace().around(grammarAccess.getCodeBlockAccess().getCodeKeyword_1());
c.setNoSpace().around(grammarAccess.getCodeBlockAccess().getRightSquareBracketKeyword_2_3());
c.setNoSpace().before(grammarAccess.getCodeBlockAccess().getRightSquareBracketKeyword_4());
}
private void configureChapter(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().after(grammarAccess.getChapterAccess().getChapterKeyword_1_0_0_0());
c.setNoSpace().after(grammarAccess.getChapterAccess().getChapterKeyword_1_0_1());
c.setNoSpace().around(grammarAccess.getChapterAccess().getLeftSquareBracketKeyword_1_0_0_2());
c.setNoSpace().before(grammarAccess.getChapterAccess().getRightSquareBracketKeyword_1_2());
}
private void configureSection(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().after(grammarAccess.getSectionAccess().getSectionKeyword_1_0_0_0());
c.setNoSpace().after(grammarAccess.getSectionAccess().getSectionKeyword_1_0_1());
c.setNoSpace().around(grammarAccess.getSectionAccess().getLeftSquareBracketKeyword_1_0_0_2());
c.setNoSpace().around(grammarAccess.getSectionAccess().getRightSquareBracketKeyword_1_2());
}
private void configureSection2(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().after(grammarAccess.getSection2Access().getSection2Keyword_1_0_0_0());
c.setNoSpace().after(grammarAccess.getSection2Access().getSection2Keyword_1_0_1());
c.setNoSpace().around(grammarAccess.getSection2Access().getLeftSquareBracketKeyword_1_0_0_2());
c.setNoSpace().around(grammarAccess.getSection2Access().getRightSquareBracketKeyword_1_2());
}
private void configureSection3(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().after(grammarAccess.getSection3Access().getSection3Keyword_0_0_0());
c.setNoSpace().after(grammarAccess.getSection3Access().getSection3Keyword_0_1());
c.setNoSpace().around(grammarAccess.getSection3Access().getLeftSquareBracketKeyword_0_0_2());
c.setNoSpace().around(grammarAccess.getSection3Access().getRightSquareBracketKeyword_2());
}
private void configureSection4(FormattingConfig c,
XdocGrammarAccess grammarAccess) {
c.setNoSpace().after(grammarAccess.getSection4Access().getSection4Keyword_0_0_0());
c.setNoSpace().after(grammarAccess.getSection4Access().getSection4Keyword_0_1());
c.setNoSpace().around(grammarAccess.getSection4Access().getLeftSquareBracketKeyword_0_0_2());
c.setNoSpace().around(grammarAccess.getSection4Access().getRightSquareBracketKeyword_2());
}
private void configureEm(FormattingConfig c,
XdocGrammarAccess grammarAccess){
c.setNoSpace().after(grammarAccess.getEmphasizeAccess().getEKeyword_1());
c.setNoSpace().before(grammarAccess.getEmphasizeAccess().getRightSquareBracketKeyword_3());
}
}