<commit_before>package edu.kit.iti.formal.pse.worthwhile.formatting;

import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
import org.eclipse.xtext.formatting.impl.FormattingConfig;
import org.eclipse.xtext.util.Pair;

import edu.kit.iti.formal.pse.worthwhile.services.WorthwhileGrammarAccess;

/**
 * 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 WorthwhileFormatter extends AbstractDeclarativeFormatter {

	@Override
	protected final void configureFormatting(final FormattingConfig c) {
		WorthwhileGrammarAccess f = (WorthwhileGrammarAccess) getGrammarAccess();
		for (Pair<Keyword, Keyword> pair : f.findKeywordPairs("{", "}")) {
			c.setIndentation(pair.getFirst(), pair.getSecond());
			c.setNoSpace().before(pair.getFirst());
			c.setNoSpace().between(pair.getFirst(), pair.getSecond());
		}
		for (Pair<Keyword, Keyword> pair : f.findKeywordPairs("(", ")")) {
			c.setNoSpace().before(pair.getFirst());
			c.setNoSpace().between(pair.getFirst(), pair.getSecond());
		}
		for (Keyword comma : f.findKeywords(",")) {
			c.setNoLinewrap().before(comma);
			c.setNoSpace().before(comma);
			c.setSpace(" ").after(comma);
			c.setNoLinewrap().after(comma);
		}
		c.setLinewrap(0, 1, 2).before(f.getSL_COMMENTRule());
		c.setLinewrap(0, 1, 2).before(f.getML_COMMENTRule());
		c.setLinewrap(0, 1, 1).after(f.getML_COMMENTRule());

		// Forbid line wrap and space in array literals
		c.setNoLinewrap().between(f.getArrayLiteralAccess().getLeftCurlyBracketKeyword_1(),
		                f.getArrayLiteralAccess().getRightCurlyBracketKeyword_3());
		c.setNoSpace().after(f.getArrayLiteralAccess().getLeftCurlyBracketKeyword_1());
		c.setNoSpace().before(f.getArrayLiteralAccess().getRightCurlyBracketKeyword_3());
	}
}<commit_msg>[formatter] Effectively disable auto linewrap<commit_after>package edu.kit.iti.formal.pse.worthwhile.formatting;

import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
import org.eclipse.xtext.formatting.impl.FormattingConfig;
import org.eclipse.xtext.util.Pair;

import edu.kit.iti.formal.pse.worthwhile.services.WorthwhileGrammarAccess;

/**
 * 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 WorthwhileFormatter extends AbstractDeclarativeFormatter {

	@Override
	protected final void configureFormatting(final FormattingConfig c) {
		WorthwhileGrammarAccess f = (WorthwhileGrammarAccess) getGrammarAccess();
		for (Pair<Keyword, Keyword> pair : f.findKeywordPairs("{", "}")) {
			c.setIndentation(pair.getFirst(), pair.getSecond());
			c.setNoSpace().before(pair.getFirst());
			c.setNoSpace().between(pair.getFirst(), pair.getSecond());
		}
		for (Pair<Keyword, Keyword> pair : f.findKeywordPairs("(", ")")) {
			c.setNoSpace().before(pair.getFirst());
			c.setNoSpace().between(pair.getFirst(), pair.getSecond());
		}
		for (Keyword comma : f.findKeywords(",")) {
			c.setNoLinewrap().before(comma);
			c.setNoSpace().before(comma);
			c.setSpace(" ").after(comma);
			c.setNoLinewrap().after(comma);
		}
		c.setLinewrap(0, 1, 2).before(f.getSL_COMMENTRule());
		c.setLinewrap(0, 1, 2).before(f.getML_COMMENTRule());
		c.setLinewrap(0, 1, 1).after(f.getML_COMMENTRule());

		// Forbid line wrap and space in array literals
		c.setNoLinewrap().between(f.getArrayLiteralAccess().getLeftCurlyBracketKeyword_1(),
		                f.getArrayLiteralAccess().getRightCurlyBracketKeyword_3());
		c.setNoSpace().after(f.getArrayLiteralAccess().getLeftCurlyBracketKeyword_1());
		c.setNoSpace().before(f.getArrayLiteralAccess().getRightCurlyBracketKeyword_3());
		
		c.setAutoLinewrap(Integer.MAX_VALUE);
	}
}
{'fraction_non_alphanumeric': 0.14949840959138733, 'fraction_numerical': 0.006361634450697333, 'mean_word_length': 5.458135860979463, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5716383', 'n_tokens_mistral': 1465, 'n_tokens_neox': 1385, 'n_words': 201}