use of org.eclipse.xtext.formatting2.regionaccess.internal.regionaccesstestlanguage.Root in project xtext-core by eclipse.
the class RegionAccessDiffTest method testInsertBeforeComment.
@Test
public void testInsertBeforeComment() throws Exception {
String model = "8\n" + "/**/\n" + "a b\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
ITextRegionExtensions ext = access.getExtensions();
ValueList rootObj = (ValueList) access.regionForRootEObject().getSemanticElement();
ISemanticRegion a = ext.regionFor(rootObj).keyword("8").getNextSemanticRegion();
ISemanticRegion b = a.getNextSemanticRegion();
it.replace(a.getPreviousHiddenRegion(), a.getPreviousHiddenRegion(), b.getPreviousHiddenRegion(), b.getNextHiddenRegion());
});
String expectation = " 0 0 H\n" + " B ValueList'[a, b]' Root\n" + " 0 1 S \"8\" Root:'8'\n" + " 1 1 1 H \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " 2 1 1 S \"b\" ValueList:name+=ID\n" + " 3 1 H \"/**/\" Comment:TerminalRule'ML_COMMENT' Association:PREVIOUS\n" + " 5 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " 8 1 S \"a\" ValueList:name+=ID\n" + " 9 1 H \" \" Whitespace:TerminalRule'WS'\n" + "10 1 S \"b\" ValueList:name+=ID\n" + " E ValueList'[a, b]' Root\n" + "11 0 H\n" + "------------ diff 1 ------------\n" + " 1 H \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " \"/**/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 6 \"\\n" + "\" Whitespace:TerminalRule'WS'\n";
regionAccessTestHelper.assertRegions(modifiedAccess, expectation);
}
use of org.eclipse.xtext.formatting2.regionaccess.internal.regionaccesstestlanguage.Root in project xtext-core by eclipse.
the class RegionAccessDiffTest method testSerializeChildObject.
@Test
public void testSerializeChildObject() throws Exception {
String model = "2 foo\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
Delegate child = ((Delegation) access.regionForRootEObject().getSemanticElement()).getDelegate();
IEObjectRegion childRegion = access.regionForEObject(child);
child.setName("baaaz");
ITextRegionAccess textRegions = this.serializer.serializeToRegions(child);
it.replace(childRegion.getPreviousHiddenRegion(), childRegion.getNextHiddenRegion(), textRegions);
});
String expectation = "0 0 H\n" + " B Delegation Root\n" + "0 1 S \"2\" Delegation:'2'\n" + "1 1 1 H \" \" Whitespace:TerminalRule'WS'\n" + " B Delegate'baaaz' Delegate path:Delegation/delegate\n" + "2 5 1 S \"baaaz\" Delegate:name=ID\n" + " E Delegate'baaaz' Delegate path:Delegation/delegate\n" + " E Delegation Root\n" + "7 0 1 H\n" + "------------ diff 1 ------------\n" + "1 1 H \" \" Whitespace:TerminalRule'WS'\n" + "2 3 S \"foo\" Delegate:name=ID\n" + "5 0 H\n";
regionAccessTestHelper.assertRegions(modifiedAccess, expectation);
}
use of org.eclipse.xtext.formatting2.regionaccess.internal.regionaccesstestlanguage.Root in project xtext-core by eclipse.
the class RegionAccessCommentsTest method testDeleteFirstRegion4.
@Test
public void testDeleteFirstRegion4() throws Exception {
String model = "/*h*/\n" + "/*81*/\n" + "/*82*/\n" + "\n" + "8 //8\n" + "/*a*/\n" + "a\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
ISemanticRegion foo = access.regionForRootEObject().getAllRegionsFor().keyword("8");
it.remove(foo);
});
String expectation = " 0 1 H \"/*h*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " \"/*81*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " \"/*82*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " \"\\n" + "\\n" + "\" Whitespace:TerminalRule'WS'\n" + " \"/*a*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 27 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " B ValueList'[a]' Root\n" + "27 1 S \"a\" ValueList:name+=ID\n" + " E ValueList'[a]' Root\n" + "28 0 H\n" + "------------ diff 1 ------------\n" + " 0 H \"/*h*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " \"/*81*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + " \"/*82*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " 21 \"\\n" + "\\n" + "\" Whitespace:TerminalRule'WS'\n" + "21 1 S \"8\" Root:'8'\n" + "22 H \" \" Whitespace:TerminalRule'WS'\n" + " \"//8\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*a*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 11 \"\\n" + "\" Whitespace:TerminalRule'WS'\n";
regionAccessTestHelper.assertRegions(modifiedAccess, expectation);
}
use of org.eclipse.xtext.formatting2.regionaccess.internal.regionaccesstestlanguage.Root in project xtext-core by eclipse.
the class RegionAccessCommentsTest method testMove.
@Test
public void testMove() throws Exception {
String model = "8//8\n" + "/*a*/\n" + "a//a\n" + "/*b*/\n" + "b//b\n" + "/*c*/\n" + "c\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
List<ISemanticRegion> regions = access.regionForRootEObject().getAllRegionsFor().features(RegionaccesstestlanguagePackage.Literals.VALUE_LIST__NAME);
ISemanticRegion a = regions.get(0);
ISemanticRegion b = regions.get(1);
it.move(b.getNextHiddenRegion(), a.getPreviousHiddenRegion(), a.getNextHiddenRegion());
});
String expectation = " 0 0 H\n" + " B ValueList'[a, b, c]' Root\n" + " 0 1 S \"8\" Root:'8'\n" + " 1 1 H \"//8\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*b*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 10 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + "11 1 S \"b\" ValueList:name+=ID\n" + "12 2 H \"//b\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*a*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 10 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + "22 1 2 S \"a\" ValueList:name+=ID\n" + "23 2 H \"//a\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*c*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 10 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + "33 1 S \"c\" ValueList:name+=ID\n" + " E ValueList'[a, b, c]' Root\n" + "34 0 H\n" + "------------ diff 1 ------------\n" + " 1 H \"//8\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*a*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 10 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + "11 1 S \"a\" ValueList:name+=ID\n" + "12 H \"//a\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*b*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 10 \"\\n" + "\" Whitespace:TerminalRule'WS'\n" + "------------ diff 2 ------------\n" + "23 H \"//b\\n" + "\" Comment:TerminalRule'SL_COMMENT' Association:PREVIOUS\n" + " \"/*c*/\" Comment:TerminalRule'ML_COMMENT' Association:NEXT\n" + " 10 \"\\n" + "\" Whitespace:TerminalRule'WS'\n";
regionAccessTestHelper.assertRegions(modifiedAccess, expectation);
}
use of org.eclipse.xtext.formatting2.regionaccess.internal.regionaccesstestlanguage.Root in project xtext-core by eclipse.
the class RegionAccessBuilderTest method testMixedUnassignedDatatype1.
@Test
public void testMixedUnassignedDatatype1() throws Exception {
String model = "6 (unassigned datatype foo)\n".trim();
String expectation = " 0 0 H\n" + " B Action Root\n" + " 0 1 S \"6\" Root:'6'\n" + " 1 1 H \" \" Whitespace:TerminalRule'WS'\n" + " 2 1 S \"(\" Mixed:'('\n" + " 3 0 H\n" + " 3 10 S \"unass...\" Mixed:'unassigned'\n" + "13 1 H \" \" Whitespace:TerminalRule'WS'\n" + "14 12 S \"datat...\" Mixed:Datatype\n" + "26 0 H\n" + "26 1 S \")\" Mixed:')'\n" + " E Action Root\n" + "27 0 H\n";
assertRegions(model, expectation);
}
Aggregations