use of org.eclipse.xtext.resource.XtextResource in project xtext-xtend by eclipse.
the class DocumentRewriterTest method testSectionOverlap.
@Test
public void testSectionOverlap() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("//***********");
_builder.newLine();
final Procedure2<DocumentRewriter, XtextResource> _function = (DocumentRewriter it, XtextResource r) -> {
it.newSection(3, 1).append("one");
it.newSection(4, 2).append("two");
it.newSection(6, 1).append("three");
final Procedure1<DocumentRewriter> _function_1 = (DocumentRewriter it_1) -> {
it_1.newSection(4, 2);
};
this.assertFails(it, _function_1);
final Procedure1<DocumentRewriter> _function_2 = (DocumentRewriter it_1) -> {
it_1.newSection(5, 0);
};
this.assertFails(it, _function_2);
final Procedure1<DocumentRewriter> _function_3 = (DocumentRewriter it_1) -> {
it_1.newSection(5, 1);
};
this.assertFails(it, _function_3);
final Procedure1<DocumentRewriter> _function_4 = (DocumentRewriter it_1) -> {
it_1.newSection(5, 2);
};
this.assertFails(it, _function_4);
final Procedure1<DocumentRewriter> _function_5 = (DocumentRewriter it_1) -> {
it_1.newSection(6, 0);
};
this.assertFails(it, _function_5);
final Procedure1<DocumentRewriter> _function_6 = (DocumentRewriter it_1) -> {
it_1.newSection(6, 1);
};
this.assertFails(it, _function_6);
final Procedure1<DocumentRewriter> _function_7 = (DocumentRewriter it_1) -> {
it_1.newSection(6, 2);
};
this.assertFails(it, _function_7);
};
String _rewrite = this.rewrite(_builder, _function);
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("//*onetwothree******");
_builder_1.newLine();
this.andExpect(_rewrite, _builder_1);
}
use of org.eclipse.xtext.resource.XtextResource in project xtext-xtend by eclipse.
the class DocumentRewriterTest method testEmptyLinesAround.
@Test
public void testEmptyLinesAround() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("class Foo {");
_builder.newLine();
_builder.append("\t");
_builder.append("def foo() {}");
_builder.newLine();
_builder.append("\t");
_builder.append("def bar() {}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final String model = _builder.toString();
final Procedure2<DocumentRewriter, XtextResource> _function = (DocumentRewriter it, XtextResource r) -> {
final DocumentRewriter.Section beforeDefBar = it.newSection(model.indexOf("def bar"), 0, true);
beforeDefBar.append("val x = 42");
};
String _rewrite = this.rewrite(model, _function);
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("class Foo {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def foo() {}");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("val x = 42");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def bar() {}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
this.andExpect(_rewrite, _builder_1);
}
use of org.eclipse.xtext.resource.XtextResource in project xtext-xtend by eclipse.
the class DocumentRewriterTest method createDocument.
protected XtextDocument createDocument(final String content) throws Exception {
XtextDocument _xblockexpression = null;
{
final IFile file = this._workbenchTestHelper.createFile("Foo", content);
final Resource resource = this._workbenchTestHelper.getResourceSet().getResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true), true);
XtendDocumentTokenSource _xtendDocumentTokenSource = new XtendDocumentTokenSource();
final Procedure1<XtendDocumentTokenSource> _function = (XtendDocumentTokenSource it) -> {
AntlrTokenDefProvider _antlrTokenDefProvider = new AntlrTokenDefProvider();
final Procedure1<AntlrTokenDefProvider> _function_1 = (AntlrTokenDefProvider it_1) -> {
XtendAntlrTokenFileProvider _xtendAntlrTokenFileProvider = new XtendAntlrTokenFileProvider();
it_1.setAntlrTokenFileProvider(_xtendAntlrTokenFileProvider);
};
AntlrTokenDefProvider _doubleArrow = ObjectExtensions.<AntlrTokenDefProvider>operator_doubleArrow(_antlrTokenDefProvider, _function_1);
it.setTokenDefProvider(_doubleArrow);
final Provider<Lexer> _function_2 = () -> {
InternalXtendLexer _internalXtendLexer = new InternalXtendLexer();
return ((Lexer) _internalXtendLexer);
};
it.setLexer(_function_2);
it.setFlexerFactory(this.flexerFactory);
};
final XtendDocumentTokenSource source = ObjectExtensions.<XtendDocumentTokenSource>operator_doubleArrow(_xtendDocumentTokenSource, _function);
final XtextDocument document = new XtextDocument(source, null, this.outdatedStateManager, this.operationCanceledManager);
document.set(content);
document.setInput(((XtextResource) resource));
_xblockexpression = document;
}
return _xblockexpression;
}
use of org.eclipse.xtext.resource.XtextResource in project xtext-xtend by eclipse.
the class DirtyStateEditorValidationTest method testAddedInterfaceMethod.
@Test
public void testAddedInterfaceMethod() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("interface Foo {");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final String interface_ = _builder.toString();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("interface Foo {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def void bar(String b)");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
final String interfaceChanged = _builder_1.toString();
StringConcatenation _builder_2 = new StringConcatenation();
_builder_2.append("class Bar implements Foo {");
_builder_2.newLine();
_builder_2.append("}");
_builder_2.newLine();
final String class_ = _builder_2.toString();
final IFile interfaceFile = this.helper.createFile("Foo.xtend", interface_);
final IFile classFile = this.helper.createFile("Bar.xtend", class_);
this._syncUtil.waitForBuild(null);
Assert.assertEquals(0, classFile.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE).length);
final XtextEditor interfaceEditor = this.helper.openEditor(interfaceFile);
final XtextEditor classEditor = this.helper.openEditor(classFile);
this.assertNumberOfErrorAnnotations(classEditor, 0);
interfaceEditor.getDocument().set(interfaceChanged);
this._syncUtil.waitForReconciler(interfaceEditor);
this._syncUtil.waitForReconciler(classEditor);
final IUnitOfWork<Object, XtextResource> _function = (XtextResource it) -> {
final CancelIndicator _function_1 = () -> {
return false;
};
final List<Issue> issues = this.validator.validate(it, CheckMode.NORMAL_AND_FAST, _function_1);
Assert.assertEquals(issues.toString(), 1, issues.size());
return null;
};
classEditor.getDocument().<Object>readOnly(_function);
interfaceEditor.getDocument().set(interface_);
this._syncUtil.waitForReconciler(interfaceEditor);
this._syncUtil.waitForReconciler(classEditor);
final IUnitOfWork<Object, XtextResource> _function_1 = (XtextResource it) -> {
final CancelIndicator _function_2 = () -> {
return false;
};
final List<Issue> issues = this.validator.validate(it, CheckMode.NORMAL_AND_FAST, _function_2);
Assert.assertTrue(issues.toString(), issues.isEmpty());
return null;
};
classEditor.getDocument().<Object>readOnly(_function_1);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtext.resource.XtextResource in project xtext-core by eclipse.
the class ReferenceUpdater method getRegion.
protected ISemanticRegion getRegion(ITextRegionAccess access, IReferenceSnapshot ref) {
XtextResource resource = access.getResource();
URI objectUri = ref.getSourceEObjectUri();
if (!resource.getURI().equals(objectUri.trimFragment())) {
return null;
}
EObject object = resource.getEObject(objectUri.fragment());
if (object == null) {
return null;
}
ISemanticRegionsFinder finder = access.getExtensions().regionFor(object);
int index = ref.getIndexInList();
if (index < 0) {
return finder.feature(ref.getEReference());
} else {
List<ISemanticRegion> list = finder.features(ref.getEReference());
if (list != null && index < list.size()) {
return list.get(index);
}
}
return null;
}
Aggregations