use of org.eclipse.xtext.formatting2.regionaccess.internal.regionaccesstestlanguage.Root in project xtext-core by eclipse.
the class RegionAccessDiffTest method testSerializeRootObject.
@Test
public void testSerializeRootObject() throws Exception {
String model = "3 foo\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
IEObjectRegion root = access.regionForRootEObject();
Delegate rootObj = (Delegate) root.getSemanticElement();
rootObj.setName("baaaz");
ITextRegionAccess textRegions = this.serializer.serializeToRegions(rootObj);
it.replace(root.getPreviousHiddenRegion(), root.getNextHiddenRegion(), textRegions);
});
String expectation = "0 0 1 H\n" + " B Delegate'baaaz' Root\n" + "0 1 1 S \"3\" Unassigned:'3'\n" + "1 1 1 H \" \" Whitespace:TerminalRule'WS'\n" + "2 5 1 S \"baaaz\" Delegate:name=ID\n" + " E Delegate'baaaz' Root\n" + "7 0 1 H\n" + "------------ diff 1 ------------\n" + "0 0 H\n" + "0 1 S \"3\" Unassigned:'3'\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 RegionAccessDiffTest method testInsertReplaceReplace.
@Test
public void testInsertReplaceReplace() throws Exception {
String model = "8 a\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();
it.replace(a, "b");
it.replace(a, "c");
});
String expectation = "0 0 H\n" + " B ValueList'[a]' Root\n" + "0 1 S \"8\" Root:'8'\n" + "1 1 H \" \" Whitespace:TerminalRule'WS'\n" + "2 1 1 S \"c\" ValueList:name+=ID\n" + " E ValueList'[a]' Root\n" + "3 0 H\n" + "------------ diff 1 ------------\n" + "2 1 S \"a\" ValueList:name+=ID\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 testDeleteTwo.
@Test
public void testDeleteTwo() throws Exception {
String model = "4/*1*/prefix/*2*/foo/*3*/\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
ITextRegionExtensions ext = access.getExtensions();
PrefixedUnassigned rootObj = (PrefixedUnassigned) access.regionForRootEObject().getSemanticElement();
ISemanticRegion prefix = ext.regionFor(rootObj.getDelegate()).keyword("prefix");
ISemanticRegion foo = ext.regionFor(rootObj.getDelegate()).feature(RegionaccesstestlanguagePackage.Literals.DELEGATE__NAME);
it.remove(prefix.getPreviousHiddenRegion(), foo.getNextHiddenRegion());
});
String expectation = " 0 0 H\n" + " B PrefixedUnassigned Root\n" + " 0 1 S \"4\" PrefixedUnassigned:'4'\n" + " E PrefixedUnassigned Root\n" + " 1 1 H \"/*1*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " 10 \"/*3*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + "------------ diff 1 ------------\n" + " 1 5 H \"/*1*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + " 6 6 S \"prefix\" PrefixedDelegate:'prefix'\n" + "12 5 H \"/*2*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\n" + "17 3 S \"foo\" Delegate:name=ID\n" + "20 5 H \"/*3*/\" Comment:TerminalRule'ML_COMMENT' Association:CONTAINER\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 testInsertInsertReplace.
@Test
public void testInsertInsertReplace() throws Exception {
String model = "8 a\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();
it.replace(a.getNextHiddenRegion(), a.getNextHiddenRegion(), a.getPreviousHiddenRegion(), a.getNextHiddenRegion());
it.replace(a.getNextHiddenRegion(), a.getNextHiddenRegion(), a.getPreviousHiddenRegion(), a.getNextHiddenRegion());
it.replace(a, "new");
});
String expectation = " 0 0 H\n" + " B ValueList'[a]' Root\n" + " 0 1 S \"8\" Root:'8'\n" + " 1 1 H \" \" Whitespace:TerminalRule'WS'\n" + " 2 3 2 S \"new\" ValueList:name+=ID\n" + " 5 0 2 H\n" + " 5 3 2 S \"new\" ValueList:name+=ID\n" + " 8 0 2 H\n" + " 8 3 2 S \"new\" ValueList:name+=ID\n" + " E ValueList'[a]' Root\n" + "11 0 2 H\n" + "------------ diff 1 ------------\n" + " 2 1 S \"a\" ValueList:name+=ID\n" + "------------ diff 2 ------------\n" + " 2 1 S \"a\" ValueList:name+=ID\n" + " 3 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 RegionAccessDiffTest method testSingleSemanticToken.
@Test
public void testSingleSemanticToken() throws Exception {
String model = "1 foo\n";
ITextRegionAccess access = regionAccessTestHelper.toTextRegionAccess(model);
ITextRegionAccess modifiedAccess = regionAccessTestHelper.modify(access, (ITextRegionDiffBuilder it) -> {
ITextRegionExtensions ext = access.getExtensions();
EObject root = access.regionForRootEObject().getSemanticElement();
ISemanticRegion foo = ext.allRegionsFor(root).feature(RegionaccesstestlanguagePackage.Literals.SIMPLE__NAME);
it.replace(foo, "baaar");
});
String expectation = "0 0 H\n" + " B Simple'foo' Root\n" + "0 1 S \"1\" Simple:'1'\n" + "1 1 H \" \" Whitespace:TerminalRule'WS'\n" + "2 5 1 S \"baaar\" Simple:name=ID\n" + " E Simple'foo' Root\n" + "7 0 H\n" + "------------ diff 1 ------------\n" + "2 3 S \"foo\" Simple:name=ID\n";
regionAccessTestHelper.assertRegions(modifiedAccess, expectation);
}
Aggregations