Search in sources :

Example 31 with Issue

use of org.eclipse.xtext.validation.Issue in project dsl-devkit by dsldevkit.

the class CheckMarkerUpdateJob method createMarkers.

/**
 * Creates the marker on a given file based on the collection of issues.
 *
 * @param markerCreator
 *          the marker creator, may be {@code null}
 * @param file
 *          the EFS file, must not be {@code null}
 * @param issues
 *          the collection of issues, must not be {@code null}
 * @throws CoreException
 */
private void createMarkers(final MarkerCreator markerCreator, final IFile file, final Collection<Issue> issues) throws CoreException {
    file.deleteMarkers(MarkerTypes.FAST_VALIDATION, true, IResource.DEPTH_ZERO);
    file.deleteMarkers(MarkerTypes.NORMAL_VALIDATION, true, IResource.DEPTH_ZERO);
    file.deleteMarkers(MarkerTypes.EXPENSIVE_VALIDATION, true, IResource.DEPTH_ZERO);
    if (markerCreator != null) {
        for (final Issue issue : issues) {
            markerCreator.createMarker(issue, file, MarkerTypes.forCheckType(issue.getType()));
        }
    } else {
        if (LOGGER.isDebugEnabled()) {
            // $NON-NLS-1$
            LOGGER.error("Could not create markers. The marker creator is null.");
        }
    }
}
Also used : Issue(org.eclipse.xtext.validation.Issue)

Example 32 with Issue

use of org.eclipse.xtext.validation.Issue in project mechanoid by robotoworks.

the class Compiler method compile.

public void compile(String source, String sourceFolder, String stubFolder, boolean recurse) {
    Map<String, OutputConfiguration> outputConfigurations = createOutputConfigurations(sourceFolder, stubFolder);
    mFileSystemAccess.setOutputConfigurations(outputConfigurations);
    File file = new File(System.getProperty("user.dir"), source);
    if (!file.exists()) {
        throw new IllegalStateException("invalid input source");
    }
    ArrayList<String> resourcePaths = new ArrayList<String>();
    getResourcePaths(resourcePaths, file, recurse);
    loadResources(resourcePaths);
    List<Issue> issues = validate();
    for (Issue issue : issues) {
        System.out.println(issue.getCode() + ":" + issue.getMessage());
    }
    if (issues.size() == 0) {
        generate();
    }
}
Also used : Issue(org.eclipse.xtext.validation.Issue) OutputConfiguration(org.eclipse.xtext.generator.OutputConfiguration) ArrayList(java.util.ArrayList) File(java.io.File)

Example 33 with Issue

use of org.eclipse.xtext.validation.Issue in project coffeescript-eclipse by adamschmideg.

the class Main method runGenerator.

protected void runGenerator(String string) {
    // load the resource
    ResourceSet set = resourceSetProvider.get();
    Resource resource = set.getResource(URI.createURI(string), true);
    // validate the resource
    List<Issue> list = validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl);
    if (!list.isEmpty()) {
        for (Issue issue : list) {
            System.err.println(issue);
        }
        return;
    }
    // configure and start the generator
    fileAccess.setOutputPath("src-gen/");
    generator.doGenerate(resource, fileAccess);
    System.out.println("Code generation finished.");
}
Also used : Issue(org.eclipse.xtext.validation.Issue) Resource(org.eclipse.emf.ecore.resource.Resource) ResourceSet(org.eclipse.emf.ecore.resource.ResourceSet)

Example 34 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-xtend by eclipse.

the class ActiveAnnotationsRuntimeTest method testBug403563.

@Test
public void testBug403563() {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("package myannotation");
    _builder.newLine();
    _builder.newLine();
    _builder.append("import org.eclipse.xtend.lib.macro.Active");
    _builder.newLine();
    _builder.append("import org.eclipse.xtend.lib.macro.TransformationContext");
    _builder.newLine();
    _builder.append("import org.eclipse.xtend.lib.macro.AbstractClassProcessor");
    _builder.newLine();
    _builder.append("import org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration");
    _builder.newLine();
    _builder.newLine();
    _builder.append("@Active(ThrowExceptionAnnotationProcessor)");
    _builder.newLine();
    _builder.append("annotation ThrowExceptionAnnotation{ }");
    _builder.newLine();
    _builder.append("class ThrowExceptionAnnotationProcessor extends AbstractClassProcessor {");
    _builder.newLine();
    _builder.newLine();
    _builder.append("\t");
    _builder.append("override doTransform(MutableClassDeclaration clazz, extension TransformationContext context) {");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("throw new IllegalStateException");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    Pair<String, String> _mappedTo = Pair.<String, String>of("myannotation/ThrowExceptionAnnotationProcessor.xtend", _builder.toString());
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("package myusercode");
    _builder_1.newLine();
    _builder_1.newLine();
    _builder_1.append("@myannotation.ThrowExceptionAnnotation class MyClass {");
    _builder_1.newLine();
    _builder_1.append("}");
    _builder_1.newLine();
    Pair<String, String> _mappedTo_1 = Pair.<String, String>of("myusercode/UserCode.xtend", _builder_1.toString());
    final Procedure1<List<Issue>> _function = (List<Issue> it) -> {
        Assert.assertEquals(1, it.size());
        final Issue error = IterableExtensions.<Issue>head(it);
        Assert.assertNotNull(error);
        Assert.assertEquals(IssueCodes.PROCESSING_ERROR, error.getCode());
        Assert.assertTrue(error.getMessage().contains(IllegalStateException.class.getName()));
        Assert.assertFalse(error.getMessage().contains(AnnotationProcessor.class.getName()));
    };
    this.assertIssues(_mappedTo, _mappedTo_1, _function);
}
Also used : Issue(org.eclipse.xtext.validation.Issue) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) List(java.util.List) AnnotationProcessor(org.eclipse.xtend.core.macro.AnnotationProcessor) Test(org.junit.Test)

Example 35 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-xtend by eclipse.

the class AbstractXtendTestCase method files.

protected Iterable<XtendFile> files(boolean validate, String... contents) throws Exception {
    XtextResourceSet set = getResourceSet();
    List<XtendFile> result = newArrayList();
    for (String string : contents) {
        String fileName = getFileName(string);
        Resource resource = set.createResource(URI.createURI(fileName + ".xtend"));
        resource.load(new StringInputStream(string), null);
        assertEquals(resource.getErrors().toString(), 0, resource.getErrors().size());
    }
    for (Resource resource : new ArrayList<Resource>(set.getResources())) {
        XtendFile file = (XtendFile) resource.getContents().get(0);
        result.add(file);
    }
    if (validate) {
        for (XtendFile file : result) {
            List<Issue> issues = ((XtextResource) file.eResource()).getResourceServiceProvider().getResourceValidator().validate(file.eResource(), CheckMode.ALL, CancelIndicator.NullImpl);
            assertTrue("Resource contained errors : " + issues.toString(), issues.isEmpty());
        }
    }
    return result;
}
Also used : XtendFile(org.eclipse.xtend.core.xtend.XtendFile) StringInputStream(org.eclipse.xtext.util.StringInputStream) Issue(org.eclipse.xtext.validation.Issue) XtextResourceSet(org.eclipse.xtext.resource.XtextResourceSet) XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) ArrayList(java.util.ArrayList) XtextResource(org.eclipse.xtext.resource.XtextResource)

Aggregations

Issue (org.eclipse.xtext.validation.Issue)105 Test (org.junit.Test)38 XtextResource (org.eclipse.xtext.resource.XtextResource)33 Resource (org.eclipse.emf.ecore.resource.Resource)21 IResourceValidator (org.eclipse.xtext.validation.IResourceValidator)18 URI (org.eclipse.emf.common.util.URI)16 List (java.util.List)14 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)12 IssueResolution (org.eclipse.xtext.ui.editor.quickfix.IssueResolution)12 XtendFile (org.eclipse.xtend.core.xtend.XtendFile)11 ArrayList (java.util.ArrayList)9 Severity (org.eclipse.xtext.diagnostics.Severity)9 IXtextDocument (org.eclipse.xtext.ui.editor.model.IXtextDocument)9 EObject (org.eclipse.emf.ecore.EObject)8 IOException (java.io.IOException)7 CoreException (org.eclipse.core.runtime.CoreException)7 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)7 StringInputStream (org.eclipse.xtext.util.StringInputStream)7 Diagnostic (org.eclipse.emf.ecore.resource.Resource.Diagnostic)6 IssueResolutionAcceptor (org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor)6