use of org.eclipse.xtext.ui.editor.folding.FoldedPosition in project xtext-xtend by eclipse.
the class XtendFoldingRegionProviderTest method testFoldSetLiteral_02.
@Test
public void testFoldSetLiteral_02() throws Exception {
String content = "class Foo {\n" + " def xxx() {\n" + " #{1,2}\n" + " }\n" + "}";
Collection<FoldedPosition> foldingRegions = calculateFoldingRegions("test/Foo", content);
assertEquals(2, foldingRegions.size());
Iterator<FoldedPosition> iterator = foldingRegions.iterator();
FoldedPosition next = iterator.next();
assertEquals(0, next.offset);
assertEquals(42, next.length);
next = iterator.next();
assertEquals(12, next.offset);
assertEquals(29, next.length);
}
use of org.eclipse.xtext.ui.editor.folding.FoldedPosition in project xtext-xtend by eclipse.
the class XtendFoldingRegionProviderTest method testFoldAnonymousClass.
@Test
public void testFoldAnonymousClass() throws Exception {
String content = "class Foo {\n" + " val foo = new Runnable() {\n" + " override run() {\n" + " }\n" + " }\n" + "}";
Collection<FoldedPosition> foldingRegions = calculateFoldingRegions("test/Bar", content);
assertEquals(3, foldingRegions.size());
Iterator<FoldedPosition> iterator = foldingRegions.iterator();
FoldedPosition next = iterator.next();
assertEquals(0, next.offset);
assertEquals(69, next.length);
next = iterator.next();
assertEquals(12, next.offset);
assertEquals(56, next.length);
next = iterator.next();
assertEquals(40, next.offset);
assertEquals(25, next.length);
}
use of org.eclipse.xtext.ui.editor.folding.FoldedPosition in project xtext-eclipse by eclipse.
the class AbstractFoldingTest method insertFoldingRegionMarkers.
protected String insertFoldingRegionMarkers(IXtextDocument document, String lineSeparator) {
List<String> lines = Arrays.asList(document.get().split(lineSeparator));
try {
for (FoldedPosition foldingRegion : foldingRegionProvider.getFoldingRegions(document)) {
// Insert the beginning folding region marker at the beginning of the corresponding line
int startLine = document.getLineOfOffset(foldingRegion.offset);
lines.set(startLine, b() + lines.get(startLine));
// Insert the end folding region marker at the end of the corresponding line
int endLine = document.getLineOfOffset(foldingRegion.offset + foldingRegion.length) - 1;
lines.set(endLine, lines.get(endLine) + e());
}
} catch (BadLocationException e) {
throw new RuntimeException(e);
}
return Joiner.on(lineSeparator).join(lines);
}
use of org.eclipse.xtext.ui.editor.folding.FoldedPosition in project xtext-eclipse by eclipse.
the class DefaultFoldingRegionProviderTest method testShouldProcessContent.
@SuppressWarnings("deprecation")
@Test
public void testShouldProcessContent() throws Exception {
IFile iFile = createFile("foo/bar.foldingtestlanguage", "element foo \n" + "element bar \n" + "end \n" + "end");
IXtextDocument document = openFileAndReturnDocument(iFile);
DefaultFoldingRegionProvider reg = new DefaultFoldingRegionProvider(new DefaultLocationInFileProvider()) {
@Override
protected boolean shouldProcessContent(EObject object) {
if (object instanceof Element) {
return !"foo".equals(((Element) object).getName());
}
return super.shouldProcessContent(object);
}
};
Collection<FoldedPosition> regions = reg.getFoldingRegions(document);
assertEquals(1, regions.size());
assertEquals(0, regions.iterator().next().getOffset());
}
use of org.eclipse.xtext.ui.editor.folding.FoldedPosition in project xtext-eclipse by eclipse.
the class DefaultFoldingRegionProviderTest method testGetFoldingRegionsWithMlCommentStart.
@Test
public void testGetFoldingRegionsWithMlCommentStart() throws Exception {
IFile iFile = createFile("foo/bar.foldingtestlanguage", "/**\n*/\n element foo \nelement bar end \nelement baz end end");
IXtextDocument document = openFileAndReturnDocument(iFile);
DefaultFoldingRegionProvider reg = createFoldingRegionProvider();
Collection<FoldedPosition> regions = reg.getFoldingRegions(document);
assertEquals(2, regions.size());
}
Aggregations