use of org.eclipse.xtext.formatting2.IFormattableDocument in project xtext-xtend by eclipse.
the class XtendFormatter method formatBody.
protected ISemanticRegion formatBody(final XtendTypeDeclaration type, @Extension final IFormattableDocument format) {
ISemanticRegion _xblockexpression = null;
{
final ISemanticRegion open = this.textRegionExtensions.regionFor(type).keyword("{");
final ISemanticRegion close = this.textRegionExtensions.regionFor(type).keyword("}");
final Procedure1<IHiddenRegionFormatter> _function = (IHiddenRegionFormatter it) -> {
it.indent();
};
format.<ISemanticRegion, ISemanticRegion>interior(open, close, _function);
format.prepend(open, XbaseFormatterPreferenceKeys.bracesInNewLine);
ISemanticRegion _xifexpression = null;
boolean _isEmpty = type.getMembers().isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
format.append(open, XtendFormatterPreferenceKeys.blankLinesBeforeFirstMember);
int _size = type.getMembers().size();
int _minus = (_size - 1);
IntegerRange _upTo = new IntegerRange(0, _minus);
for (final Integer i : _upTo) {
{
final XtendMember current = type.getMembers().get((i).intValue());
format.<XtendMember>format(current);
int _size_1 = type.getMembers().size();
int _minus_1 = (_size_1 - 1);
boolean _lessThan = ((i).intValue() < _minus_1);
if (_lessThan) {
final XtendMember next = type.getMembers().get(((i).intValue() + 1));
if (((current instanceof XtendField) && (next instanceof XtendField))) {
format.<XtendMember>append(current, XtendFormatterPreferenceKeys.blankLinesBetweenFields);
} else {
if (((current instanceof XtendFunction) && (next instanceof XtendFunction))) {
format.<XtendMember>append(current, XtendFormatterPreferenceKeys.blankLinesBetweenMethods);
} else {
format.<XtendMember>append(current, XtendFormatterPreferenceKeys.blankLinesBetweenFieldsAndMethods);
}
}
} else {
final XtendMember member = type.getMembers().get((i).intValue());
format.<XtendMember>append(member, XtendFormatterPreferenceKeys.blankLinesAfterLastMember);
}
}
}
} else {
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> {
it.newLine();
};
_xifexpression = format.append(open, _function_1);
}
_xblockexpression = _xifexpression;
}
return _xblockexpression;
}
use of org.eclipse.xtext.formatting2.IFormattableDocument in project xtext-xtend by eclipse.
the class XtendFormatter method _format.
protected void _format(final XtendFunction func, @Extension final IFormattableDocument format) {
this.formatAnnotations(func, format, XbaseFormatterPreferenceKeys.newLineAfterMethodAnnotations);
this.formatModifiers(func, format);
boolean _isEmpty = func.getTypeParameters().isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
final Procedure1<IHiddenRegionFormatter> _function = (IHiddenRegionFormatter it) -> {
it.noSpace();
};
format.append(this.textRegionExtensions.regionFor(func).keyword("<"), _function);
EList<JvmTypeParameter> _typeParameters = func.getTypeParameters();
for (final JvmTypeParameter arg : _typeParameters) {
{
format.<JvmTypeParameter>format(arg);
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> {
it.noSpace();
};
final Procedure1<IHiddenRegionFormatter> _function_2 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.append(format.prepend(this.textRegionExtensions.immediatelyFollowing(arg).keyword(","), _function_1), _function_2);
}
}
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> {
it.noSpace();
};
final Procedure1<IHiddenRegionFormatter> _function_2 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.append(format.prepend(this.textRegionExtensions.regionFor(func).keyword(">"), _function_1), _function_2);
}
final ISemanticRegion nameNode = this.textRegionExtensions.regionFor(func).feature(XtendPackage.Literals.XTEND_FUNCTION__NAME);
ISemanticRegionFinder _immediatelyFollowing = null;
if (nameNode != null) {
_immediatelyFollowing = nameNode.immediatelyFollowing();
}
ISemanticRegion _keyword = null;
if (_immediatelyFollowing != null) {
_keyword = _immediatelyFollowing.keyword("(");
}
final ISemanticRegion open = _keyword;
final ISemanticRegion close = this.textRegionExtensions.regionFor(func).keyword(")");
final Procedure1<IHiddenRegionFormatter> _function_3 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.<JvmTypeReference>append(func.getReturnType(), _function_3);
final Procedure1<IHiddenRegionFormatter> _function_4 = (IHiddenRegionFormatter it) -> {
it.noSpace();
};
format.prepend(open, _function_4);
XExpression _expression = func.getExpression();
boolean _tripleNotEquals = (_expression != null);
if (_tripleNotEquals) {
format.append(close, XbaseFormatterPreferenceKeys.bracesInNewLine);
}
this.formatCommaSeparatedList(func.getParameters(), open, close, format);
format.<JvmTypeReference>format(func.getReturnType());
format.<XExpression>format(func.getExpression());
}
use of org.eclipse.xtext.formatting2.IFormattableDocument in project xtext-xtend by eclipse.
the class XtendFormatter method _format.
protected void _format(final XtendClass clazz, @Extension final IFormattableDocument format) {
this.formatAnnotations(clazz, format, XbaseFormatterPreferenceKeys.newLineAfterClassAnnotations);
this.formatModifiers(clazz, format);
this.formatTypeParameters(clazz, clazz.getTypeParameters(), format);
final Procedure1<IHiddenRegionFormatter> _function = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.append(this.textRegionExtensions.regionFor(clazz).keyword("class"), _function);
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.surround(this.textRegionExtensions.regionFor(clazz).keyword("extends"), _function_1);
format.<JvmTypeReference>format(clazz.getExtends());
final Procedure1<IHiddenRegionFormatter> _function_2 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.surround(this.textRegionExtensions.regionFor(clazz).keyword("implements"), _function_2);
EList<JvmTypeReference> _implements = clazz.getImplements();
for (final JvmTypeReference imp : _implements) {
{
final Procedure1<IHiddenRegionFormatter> _function_3 = (IHiddenRegionFormatter it) -> {
it.noSpace();
};
final Procedure1<IHiddenRegionFormatter> _function_4 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
format.append(format.prepend(this.textRegionExtensions.immediatelyFollowing(imp).keyword(","), _function_3), _function_4);
format.<JvmTypeReference>format(imp);
}
}
this.formatBody(clazz, format);
}
use of org.eclipse.xtext.formatting2.IFormattableDocument in project xtext-core by eclipse.
the class FileAwareTestLanguageFormatter method _format.
protected void _format(final PackageDeclaration pkg, @Extension final IFormattableDocument document) {
final Procedure1<IHiddenRegionFormatter> _function = (IHiddenRegionFormatter it) -> {
it.setNewLines(2);
};
document.append(this.textRegionExtensions.regionFor(pkg).feature(FileAwarePackage.Literals.PACKAGE_DECLARATION__NAME), _function);
EList<Import> _imports = pkg.getImports();
for (final Import imp : _imports) {
{
document.<Import>format(imp);
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> {
int _xifexpression = (int) 0;
Import _last = IterableExtensions.<Import>last(pkg.getImports());
boolean _tripleEquals = (imp == _last);
if (_tripleEquals) {
_xifexpression = 2;
} else {
_xifexpression = 1;
}
it.setNewLines(_xifexpression);
};
document.<Import>append(imp, _function_1);
}
}
EList<Element> _contents = pkg.getContents();
for (final Element element : _contents) {
document.<Element>format(element);
}
}
use of org.eclipse.xtext.formatting2.IFormattableDocument in project xtext-core by eclipse.
the class PartialSerializationTestLanguageFormatter method _format.
protected void _format(final Node obj, @Extension final IFormattableDocument document) {
List<ISemanticRegion> _keywords = this.textRegionExtensions.regionFor(obj).keywords(";");
for (final ISemanticRegion r : _keywords) {
final Procedure1<IHiddenRegionFormatter> _function = (IHiddenRegionFormatter it) -> {
it.noSpace();
};
final Procedure1<IHiddenRegionFormatter> _function_1 = (IHiddenRegionFormatter it) -> {
it.oneSpace();
};
document.append(document.prepend(r, _function), _function_1);
}
EList<Node> _children = obj.getChildren();
for (final Node child : _children) {
document.<Node>format(child);
}
}
Aggregations