Search in sources :

Example 86 with XtextResource

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);
}
Also used : DocumentRewriter(org.eclipse.xtext.xbase.ui.document.DocumentRewriter) Procedure1(org.eclipse.xtext.xbase.lib.Procedures.Procedure1) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) XtextResource(org.eclipse.xtext.resource.XtextResource) Test(org.junit.Test)

Example 87 with XtextResource

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);
}
Also used : DocumentRewriter(org.eclipse.xtext.xbase.ui.document.DocumentRewriter) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) XtextResource(org.eclipse.xtext.resource.XtextResource) Test(org.junit.Test)

Example 88 with XtextResource

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;
}
Also used : AntlrTokenDefProvider(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider) InternalXtendLexer(org.eclipse.xtend.core.parser.antlr.internal.InternalXtendLexer) Lexer(org.eclipse.xtext.parser.antlr.Lexer) IFile(org.eclipse.core.resources.IFile) Procedure1(org.eclipse.xtext.xbase.lib.Procedures.Procedure1) XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) XtendDocumentTokenSource(org.eclipse.xtend.ide.editor.model.XtendDocumentTokenSource) XtextDocument(org.eclipse.xtext.ui.editor.model.XtextDocument) XtendAntlrTokenFileProvider(org.eclipse.xtend.core.parser.antlr.XtendAntlrTokenFileProvider) InternalXtendLexer(org.eclipse.xtend.core.parser.antlr.internal.InternalXtendLexer)

Example 89 with XtextResource

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);
    }
}
Also used : IFile(org.eclipse.core.resources.IFile) XtextEditor(org.eclipse.xtext.ui.editor.XtextEditor) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) XtextResource(org.eclipse.xtext.resource.XtextResource) List(java.util.List) CancelIndicator(org.eclipse.xtext.util.CancelIndicator) Test(org.junit.Test)

Example 90 with XtextResource

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;
}
Also used : EObject(org.eclipse.emf.ecore.EObject) XtextResource(org.eclipse.xtext.resource.XtextResource) ISemanticRegion(org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion) URI(org.eclipse.emf.common.util.URI) ISemanticRegionsFinder(org.eclipse.xtext.formatting2.regionaccess.ISemanticRegionsFinder)

Aggregations

XtextResource (org.eclipse.xtext.resource.XtextResource)627 Test (org.junit.Test)367 Resource (org.eclipse.emf.ecore.resource.Resource)107 EObject (org.eclipse.emf.ecore.EObject)99 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)67 StringInputStream (org.eclipse.xtext.util.StringInputStream)67 URI (org.eclipse.emf.common.util.URI)62 Diagnostic (org.eclipse.emf.common.util.Diagnostic)55 IXtextDocument (org.eclipse.xtext.ui.editor.model.IXtextDocument)55 ICompositeNode (org.eclipse.xtext.nodemodel.ICompositeNode)46 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)40 Grammar (org.eclipse.xtext.Grammar)32 IUnitOfWork (org.eclipse.xtext.util.concurrent.IUnitOfWork)31 XtextEditor (org.eclipse.xtext.ui.editor.XtextEditor)30 IFile (org.eclipse.core.resources.IFile)29 Issue (org.eclipse.xtext.validation.Issue)29 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)28 List (java.util.List)26 XtendFile (org.eclipse.xtend.core.xtend.XtendFile)26 INode (org.eclipse.xtext.nodemodel.INode)23