Loading plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/formatting2/TDLtxFormatter.java +86 −4 Original line number Diff line number Diff line Loading @@ -7,17 +7,27 @@ import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.formatting2.AbstractJavaFormatter; import org.eclipse.xtext.formatting2.FormatterPreferenceKeys; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; import org.eclipse.xtext.preferences.ITypedPreferenceValues; import org.eclipse.xtext.preferences.MapBasedPreferenceValues; import org.eclipse.xtext.xbase.lib.Extension; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Comment; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.FormalParameter; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.Action; import org.etsi.mts.tdl.NamedElement; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.MemberAssignment; import org.etsi.mts.tdl.PackageableElement; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterMapping; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.Connection; import org.etsi.mts.tdl.TestObjective; import org.etsi.mts.tdl.services.TDLtxGrammarAccess; Loading @@ -32,6 +42,10 @@ public class TDLtxFormatter extends AbstractJavaFormatter { //TODO: it does not work with white-space delimiters protected void formatCustom(Element e, IFormattableDocument doc) { doc.prepend(e, p -> p.setNewLines(1)); //TODO: repeated formatting doesn't work very well.. doc.prepend(this.textRegionExtensions.allRegionsFor(e).keyword(","), r->r.noSpace()); List<ISemanticRegion> rbs = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getBEGINRule()); List<ISemanticRegion> res = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getENDRule()); // System.out.println(res.size()); Loading @@ -51,8 +65,13 @@ public class TDLtxFormatter extends AbstractJavaFormatter { } protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { // System.out.println("Formatting: "+e.getName() + " : "+e.eClass().getName()); // doc.interior(e, p->p.indent()); formatCustom(e, doc); if (e instanceof FormalParameter) { // doc.surround(e, p->p.indent()); // doc.prepend(e, p->p.setNewLines(0)); } for (Comment comment : e.getComment()) { doc.surround(comment, p -> p.setNewLines(1)); Loading @@ -69,9 +88,14 @@ public class TDLtxFormatter extends AbstractJavaFormatter { || c instanceof MemberAssignment || c instanceof ParameterMapping || c instanceof Comment || c instanceof Connection ) { doc.surround(c, p->p.setNewLines(1)); //TODO: re-enable in select contexts? //doc.surround(c, p->p.setNewLines(1)); doc.prepend(this.textRegionExtensions.allRegionsFor(e).keyword(","), r->r.noSpace()); formatCustom((Element)c, doc); doc.format(c); } } if (e instanceof TestObjective) { Loading @@ -80,17 +104,75 @@ public class TDLtxFormatter extends AbstractJavaFormatter { doc.append(rs, p -> p.setNewLines(1)); } } if (e instanceof Action) { int size = ((Action)e).getFormalParameter().size(); int i = 0; for (FormalParameter m :((Action) e).getFormalParameter()) { i++; doc.prepend(m, r->r.newLine()); doc.surround(m, p->p.indent()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } if (e instanceof StructuredDataType) { if (!((StructuredDataType) e).getMember().isEmpty()) { doc.interior( doc.append(this.textRegionExtensions.regionFor(e).keyword("("), r->r.newLine()), doc.prepend(this.textRegionExtensions.regionFor(e).keyword(")"), r->r.newLine()), r->r.indent()); } int size = ((StructuredDataType)e).getMember().size(); int i = 0; for (Member m :((StructuredDataType) e).getMember()) { i++; doc.prepend(m, r->r.newLine()); doc.surround(m, p->p.indent()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } if (e instanceof StructuredDataInstance) { int size = ((StructuredDataInstance)e).getMemberAssignment().size(); int i = 0; for (MemberAssignment m : ((StructuredDataInstance)e).getMemberAssignment()) { i++; doc.prepend(m, p->p.newLine()); doc.surround(m, p->p.indent()); // doc.append(m, p->p.newLine()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } } protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, // etc. // getPreferences().getPreference(FormatterPreferenceKeys.indentation); //setPreference(FormatterPreferenceKeys.indentation); if (getPreferences() instanceof MapBasedPreferenceValues) { MapBasedPreferenceValues preferences = (MapBasedPreferenceValues) getPreferences(); preferences.put(FormatterPreferenceKeys.indentation, " "); } // Formatter org.etsi.mts.tdl.Package e = _package; formatCustom(e, doc); List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@"); List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@", ","); for (ISemanticRegion dot : dots) { doc.surround(dot, p -> p.noSpace()); } Loading plugins/Prototypes/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/formatting2/TDLtxiFormatter.java +36 −7 Original line number Diff line number Diff line Loading @@ -7,9 +7,11 @@ import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.formatting2.FormatterPreferenceKeys; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.IHiddenRegionFormatter; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; import org.eclipse.xtext.preferences.MapBasedPreferenceValues; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; Loading @@ -22,6 +24,7 @@ import org.etsi.mts.tdl.TimeLabel; import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.TimeConstraint; import org.etsi.mts.tdl.ComponentType; import org.etsi.mts.tdl.Connection; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.DataElementMapping; Loading Loading @@ -90,7 +93,9 @@ public class TDLtxiFormatter extends TDLtxFormatter { doc.append(f, p->p.newLine()); } } if (e instanceof Connection) { doc.prepend(e, p->p.newLine()); } for (EObject m : e.eContents()) { Loading @@ -114,7 +119,7 @@ public class TDLtxiFormatter extends TDLtxFormatter { @Override protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { doc.surround(e, p->p.newLine()); doc.prepend(e, p->p.newLine()); // doc.interior(e, p->p.indent()); // doc.format(e); // doc.interior(e, p->p.indent()); Loading @@ -126,18 +131,36 @@ public class TDLtxiFormatter extends TDLtxFormatter { // doc.append(open.get(0), p->p.newLine()); // doc.interior(open.get(0), close.get(0), p->p.indent()); if (!((StructuredDataType) e).getMember().isEmpty()) { // doc.interior( // doc.append(this.textRegionExtensions.regionFor(e).keyword("("), r->r.newLine()), // doc.prepend(this.textRegionExtensions.regionFor(e).keyword(")"), r->r.newLine()), // r->r.indent()); } int size = ((StructuredDataType)e).getMember().size(); int i = 0; for (Member m : ((StructuredDataType)e).getMember()) { i++; doc.prepend(m, p->p.newLine()); doc.surround(m, p->p.indent()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } if (e instanceof StructuredDataInstance) { int size = ((StructuredDataInstance)e).getMemberAssignment().size(); int i = 0; for (MemberAssignment m : ((StructuredDataInstance)e).getMemberAssignment()) { i++; doc.prepend(m, p->p.newLine()); doc.surround(m, p->p.indent()); // doc.append(m, p->p.newLine()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } Loading Loading @@ -201,10 +224,16 @@ public class TDLtxiFormatter extends TDLtxFormatter { @Override protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, etc. if (getPreferences() instanceof MapBasedPreferenceValues) { MapBasedPreferenceValues preferences = (MapBasedPreferenceValues) getPreferences(); preferences.put(FormatterPreferenceKeys.indentation, " "); } //TODO: repeated formatting doesn't work very well.. doc.interior(_package, p->p.indent()); Package e = _package; List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@"); List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@", ","); for (ISemanticRegion dot : dots) { doc.surround(dot, p -> p.noSpace()); } Loading Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/formatting2/TDLtxFormatter.java +86 −4 Original line number Diff line number Diff line Loading @@ -7,17 +7,27 @@ import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.formatting2.AbstractJavaFormatter; import org.eclipse.xtext.formatting2.FormatterPreferenceKeys; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; import org.eclipse.xtext.preferences.ITypedPreferenceValues; import org.eclipse.xtext.preferences.MapBasedPreferenceValues; import org.eclipse.xtext.xbase.lib.Extension; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Comment; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.FormalParameter; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.Action; import org.etsi.mts.tdl.NamedElement; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.MemberAssignment; import org.etsi.mts.tdl.PackageableElement; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterMapping; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.Connection; import org.etsi.mts.tdl.TestObjective; import org.etsi.mts.tdl.services.TDLtxGrammarAccess; Loading @@ -32,6 +42,10 @@ public class TDLtxFormatter extends AbstractJavaFormatter { //TODO: it does not work with white-space delimiters protected void formatCustom(Element e, IFormattableDocument doc) { doc.prepend(e, p -> p.setNewLines(1)); //TODO: repeated formatting doesn't work very well.. doc.prepend(this.textRegionExtensions.allRegionsFor(e).keyword(","), r->r.noSpace()); List<ISemanticRegion> rbs = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getBEGINRule()); List<ISemanticRegion> res = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getENDRule()); // System.out.println(res.size()); Loading @@ -51,8 +65,13 @@ public class TDLtxFormatter extends AbstractJavaFormatter { } protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { // System.out.println("Formatting: "+e.getName() + " : "+e.eClass().getName()); // doc.interior(e, p->p.indent()); formatCustom(e, doc); if (e instanceof FormalParameter) { // doc.surround(e, p->p.indent()); // doc.prepend(e, p->p.setNewLines(0)); } for (Comment comment : e.getComment()) { doc.surround(comment, p -> p.setNewLines(1)); Loading @@ -69,9 +88,14 @@ public class TDLtxFormatter extends AbstractJavaFormatter { || c instanceof MemberAssignment || c instanceof ParameterMapping || c instanceof Comment || c instanceof Connection ) { doc.surround(c, p->p.setNewLines(1)); //TODO: re-enable in select contexts? //doc.surround(c, p->p.setNewLines(1)); doc.prepend(this.textRegionExtensions.allRegionsFor(e).keyword(","), r->r.noSpace()); formatCustom((Element)c, doc); doc.format(c); } } if (e instanceof TestObjective) { Loading @@ -80,17 +104,75 @@ public class TDLtxFormatter extends AbstractJavaFormatter { doc.append(rs, p -> p.setNewLines(1)); } } if (e instanceof Action) { int size = ((Action)e).getFormalParameter().size(); int i = 0; for (FormalParameter m :((Action) e).getFormalParameter()) { i++; doc.prepend(m, r->r.newLine()); doc.surround(m, p->p.indent()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } if (e instanceof StructuredDataType) { if (!((StructuredDataType) e).getMember().isEmpty()) { doc.interior( doc.append(this.textRegionExtensions.regionFor(e).keyword("("), r->r.newLine()), doc.prepend(this.textRegionExtensions.regionFor(e).keyword(")"), r->r.newLine()), r->r.indent()); } int size = ((StructuredDataType)e).getMember().size(); int i = 0; for (Member m :((StructuredDataType) e).getMember()) { i++; doc.prepend(m, r->r.newLine()); doc.surround(m, p->p.indent()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } if (e instanceof StructuredDataInstance) { int size = ((StructuredDataInstance)e).getMemberAssignment().size(); int i = 0; for (MemberAssignment m : ((StructuredDataInstance)e).getMemberAssignment()) { i++; doc.prepend(m, p->p.newLine()); doc.surround(m, p->p.indent()); // doc.append(m, p->p.newLine()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } } protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, // etc. // getPreferences().getPreference(FormatterPreferenceKeys.indentation); //setPreference(FormatterPreferenceKeys.indentation); if (getPreferences() instanceof MapBasedPreferenceValues) { MapBasedPreferenceValues preferences = (MapBasedPreferenceValues) getPreferences(); preferences.put(FormatterPreferenceKeys.indentation, " "); } // Formatter org.etsi.mts.tdl.Package e = _package; formatCustom(e, doc); List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@"); List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@", ","); for (ISemanticRegion dot : dots) { doc.surround(dot, p -> p.noSpace()); } Loading
plugins/Prototypes/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/formatting2/TDLtxiFormatter.java +36 −7 Original line number Diff line number Diff line Loading @@ -7,9 +7,11 @@ import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.formatting2.FormatterPreferenceKeys; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.IHiddenRegionFormatter; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; import org.eclipse.xtext.preferences.MapBasedPreferenceValues; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; Loading @@ -22,6 +24,7 @@ import org.etsi.mts.tdl.TimeLabel; import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.TimeConstraint; import org.etsi.mts.tdl.ComponentType; import org.etsi.mts.tdl.Connection; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.DataElementMapping; Loading Loading @@ -90,7 +93,9 @@ public class TDLtxiFormatter extends TDLtxFormatter { doc.append(f, p->p.newLine()); } } if (e instanceof Connection) { doc.prepend(e, p->p.newLine()); } for (EObject m : e.eContents()) { Loading @@ -114,7 +119,7 @@ public class TDLtxiFormatter extends TDLtxFormatter { @Override protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { doc.surround(e, p->p.newLine()); doc.prepend(e, p->p.newLine()); // doc.interior(e, p->p.indent()); // doc.format(e); // doc.interior(e, p->p.indent()); Loading @@ -126,18 +131,36 @@ public class TDLtxiFormatter extends TDLtxFormatter { // doc.append(open.get(0), p->p.newLine()); // doc.interior(open.get(0), close.get(0), p->p.indent()); if (!((StructuredDataType) e).getMember().isEmpty()) { // doc.interior( // doc.append(this.textRegionExtensions.regionFor(e).keyword("("), r->r.newLine()), // doc.prepend(this.textRegionExtensions.regionFor(e).keyword(")"), r->r.newLine()), // r->r.indent()); } int size = ((StructuredDataType)e).getMember().size(); int i = 0; for (Member m : ((StructuredDataType)e).getMember()) { i++; doc.prepend(m, p->p.newLine()); doc.surround(m, p->p.indent()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } if (e instanceof StructuredDataInstance) { int size = ((StructuredDataInstance)e).getMemberAssignment().size(); int i = 0; for (MemberAssignment m : ((StructuredDataInstance)e).getMemberAssignment()) { i++; doc.prepend(m, p->p.newLine()); doc.surround(m, p->p.indent()); // doc.append(m, p->p.newLine()); if (i==size) { doc.append(m, p->p.newLine()); } doc.format(m); } } Loading Loading @@ -201,10 +224,16 @@ public class TDLtxiFormatter extends TDLtxFormatter { @Override protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, etc. if (getPreferences() instanceof MapBasedPreferenceValues) { MapBasedPreferenceValues preferences = (MapBasedPreferenceValues) getPreferences(); preferences.put(FormatterPreferenceKeys.indentation, " "); } //TODO: repeated formatting doesn't work very well.. doc.interior(_package, p->p.indent()); Package e = _package; List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@"); List<ISemanticRegion> dots = this.textRegionExtensions.allRegionsFor(e).keywords(".", "@", ","); for (ISemanticRegion dot : dots) { doc.surround(dot, p -> p.noSpace()); } Loading