Loading plugins/Prototypes/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/formatting2/TDLtxiFormatter.java +80 −0 Original line number Diff line number Diff line Loading @@ -4,17 +4,97 @@ package org.etsi.mts.tdl.formatting2; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; import org.eclipse.xtext.xbase.lib.Extension; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.PackageableElement; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.TestObjective; import org.etsi.mts.tdl.DataElementMapping; import org.etsi.mts.tdl.services.TDLtxGrammarAccess; import org.etsi.mts.tdl.services.TDLtxiGrammarAccess; import com.google.inject.Inject; public class TDLtxiFormatter extends TDLtxFormatter { @Inject @Extension private TDLtxiGrammarAccess _grammarAccess; @Override protected void formatCustom(Element e, IFormattableDocument doc) { } @Override protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { doc.surround(e, p->p.newLine()); doc.interior(e, p->p.indent()); if (e instanceof StructuredDataType) { for (var m : ((StructuredDataType)e).getMember()) { doc.surround(m, p->p.newLine()); doc.format(m); } } if (e instanceof StructuredDataInstance) { for (var m : ((StructuredDataInstance)e).getMemberAssignment()) { doc.surround(m, p->p.newLine()); doc.format(m); } } if (e instanceof DataElementMapping) { for (var m : ((DataElementMapping)e).getParameterMapping()) { doc.surround(m, p->p.newLine()); doc.format(m); } } //Test Objective Only if (e instanceof TestObjective) { ISemanticRegion dKeyword = this.textRegionExtensions.regionFor(e).keyword("Description:"); doc.prepend(dKeyword, p->p.newLine()); ISemanticRegion rKeyword = this.textRegionExtensions.regionFor(e).keyword("References:"); doc.prepend(rKeyword, p->p.newLine()); } //All ISemanticRegion withKeyword = this.textRegionExtensions.regionFor(e).keyword("With:"); if (withKeyword!=null) { doc.surround(withKeyword, p->p.newLine()); doc.append(withKeyword, p->p.indent()); // doc.interior( // withKeyword.getNextHiddenRegion().getNextSemanticRegion(), // this.textRegionExtensions.nextHiddenRegion(e).getNextSemanticRegion(), // p->p.indent() // ); } //doc.prepend(withKeyword, p->p.indent()); //withKeyword.getNextSemanticRegion(); // var rbs = this.textRegionExtensions.regionFor(e).ruleCallTo(this._grammarAccess.()); for (var c : e.getComment()) { doc.surround(c, p->p.newLine()); doc.format(c); } for (var a : e.getAnnotation()) { doc.surround(a, p->p.newLine()); doc.format(a); } } @Override protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, etc. doc.interior(_package, p->p.indent()); for (ElementImport elementImport : _package.getImport()) { doc.surround(elementImport, p -> p.setNewLines(1)); doc.format(elementImport); } for (PackageableElement packageableElement : _package.getPackagedElement()) { doc.surround(packageableElement, p -> p.setNewLines(1)); doc.format(packageableElement); } for (org.etsi.mts.tdl.Package __package : _package.getNestedPackage()) { Loading Loading
plugins/Prototypes/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/formatting2/TDLtxiFormatter.java +80 −0 Original line number Diff line number Diff line Loading @@ -4,17 +4,97 @@ package org.etsi.mts.tdl.formatting2; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; import org.eclipse.xtext.xbase.lib.Extension; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.PackageableElement; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.TestObjective; import org.etsi.mts.tdl.DataElementMapping; import org.etsi.mts.tdl.services.TDLtxGrammarAccess; import org.etsi.mts.tdl.services.TDLtxiGrammarAccess; import com.google.inject.Inject; public class TDLtxiFormatter extends TDLtxFormatter { @Inject @Extension private TDLtxiGrammarAccess _grammarAccess; @Override protected void formatCustom(Element e, IFormattableDocument doc) { } @Override protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { doc.surround(e, p->p.newLine()); doc.interior(e, p->p.indent()); if (e instanceof StructuredDataType) { for (var m : ((StructuredDataType)e).getMember()) { doc.surround(m, p->p.newLine()); doc.format(m); } } if (e instanceof StructuredDataInstance) { for (var m : ((StructuredDataInstance)e).getMemberAssignment()) { doc.surround(m, p->p.newLine()); doc.format(m); } } if (e instanceof DataElementMapping) { for (var m : ((DataElementMapping)e).getParameterMapping()) { doc.surround(m, p->p.newLine()); doc.format(m); } } //Test Objective Only if (e instanceof TestObjective) { ISemanticRegion dKeyword = this.textRegionExtensions.regionFor(e).keyword("Description:"); doc.prepend(dKeyword, p->p.newLine()); ISemanticRegion rKeyword = this.textRegionExtensions.regionFor(e).keyword("References:"); doc.prepend(rKeyword, p->p.newLine()); } //All ISemanticRegion withKeyword = this.textRegionExtensions.regionFor(e).keyword("With:"); if (withKeyword!=null) { doc.surround(withKeyword, p->p.newLine()); doc.append(withKeyword, p->p.indent()); // doc.interior( // withKeyword.getNextHiddenRegion().getNextSemanticRegion(), // this.textRegionExtensions.nextHiddenRegion(e).getNextSemanticRegion(), // p->p.indent() // ); } //doc.prepend(withKeyword, p->p.indent()); //withKeyword.getNextSemanticRegion(); // var rbs = this.textRegionExtensions.regionFor(e).ruleCallTo(this._grammarAccess.()); for (var c : e.getComment()) { doc.surround(c, p->p.newLine()); doc.format(c); } for (var a : e.getAnnotation()) { doc.surround(a, p->p.newLine()); doc.format(a); } } @Override protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, etc. doc.interior(_package, p->p.indent()); for (ElementImport elementImport : _package.getImport()) { doc.surround(elementImport, p -> p.setNewLines(1)); doc.format(elementImport); } for (PackageableElement packageableElement : _package.getPackagedElement()) { doc.surround(packageableElement, p -> p.setNewLines(1)); doc.format(packageableElement); } for (org.etsi.mts.tdl.Package __package : _package.getNestedPackage()) { Loading