Search in sources :

Example 96 with Issue

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

the class AnnotationWithQuickFixesHoverTest method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    modelAsText = "stuff mystuff stuff yourstuff refs _mystuff stuff hisstuff refs _yourstuff";
    IFile file = IResourcesSetupUtil.createFile("test/test.testlanguage", modelAsText);
    editor = openEditor(file);
    document = editor.getDocument();
    hover = TestsActivator.getInstance().getInjector(getEditorId()).getInstance(AnnotationWithQuickFixesHover.class);
    hover.setSourceViewer(editor.getInternalSourceViewer());
    List<Issue> issues = document.readOnly(new IUnitOfWork<List<Issue>, XtextResource>() {

        @Override
        public List<Issue> exec(XtextResource state) throws Exception {
            return state.getResourceServiceProvider().getResourceValidator().validate(state, CheckMode.ALL, null);
        }
    });
    assertEquals(2, issues.size());
    MarkerCreator markerCreator = TestsActivator.getInstance().getInjector(getEditorId()).getInstance(MarkerCreator.class);
    for (Issue issue : issues) {
        markerCreator.createMarker(issue, file, MarkerTypes.forCheckType(issue.getType()));
    }
    if (Display.getCurrent().getActiveShell() != editor.getShell()) {
        System.out.println("Editor shell is not active. Active shell is: " + Display.getCurrent().getActiveShell());
        getWorkbenchWindow().getShell().forceActive();
        editor.getInternalSourceViewer().getTextWidget().forceFocus();
    }
}
Also used : IFile(org.eclipse.core.resources.IFile) Issue(org.eclipse.xtext.validation.Issue) List(java.util.List) XtextResource(org.eclipse.xtext.resource.XtextResource) AnnotationWithQuickFixesHover(org.eclipse.xtext.ui.editor.hover.AnnotationWithQuickFixesHover) MarkerCreator(org.eclipse.xtext.ui.editor.validation.MarkerCreator)

Example 97 with Issue

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

the class ProblemHoverTest method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    modelAsText = "stuff mystuff\nstuff yourstuff refs _mystuff stuff hisstuff refs _yourstuff// Comment";
    IFile file = IResourcesSetupUtil.createFile("test/test.testlanguage", modelAsText);
    editor = openEditor(file);
    document = editor.getDocument();
    hover = TestsActivator.getInstance().getInjector(getEditorId()).getInstance(ProblemAnnotationHover.class);
    hover.setSourceViewer(editor.getInternalSourceViewer());
    List<Issue> issues = document.readOnly(new IUnitOfWork<List<Issue>, XtextResource>() {

        @Override
        public List<Issue> exec(XtextResource state) throws Exception {
            return state.getResourceServiceProvider().getResourceValidator().validate(state, CheckMode.ALL, null);
        }
    });
    MarkerCreator markerCreator = TestsActivator.getInstance().getInjector(getEditorId()).getInstance(MarkerCreator.class);
    for (Issue issue : issues) {
        markerCreator.createMarker(issue, file, MarkerTypes.forCheckType(issue.getType()));
    }
}
Also used : IFile(org.eclipse.core.resources.IFile) Issue(org.eclipse.xtext.validation.Issue) ProblemAnnotationHover(org.eclipse.xtext.ui.editor.hover.ProblemAnnotationHover) List(java.util.List) XtextResource(org.eclipse.xtext.resource.XtextResource) MarkerCreator(org.eclipse.xtext.ui.editor.validation.MarkerCreator) CoreException(org.eclipse.core.runtime.CoreException) ExecutionException(org.eclipse.core.commands.ExecutionException)

Example 98 with Issue

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

the class LinkingErrorTest method testSemanticIssueResolution.

@Test
public void testSemanticIssueResolution() throws Exception {
    IFile dslFile = dslFile(MODEL_WITH_LINKING_ERROR);
    XtextEditor xtextEditor = openEditor(dslFile);
    URI uriToProblem = xtextEditor.getDocument().readOnly(new IUnitOfWork<URI, XtextResource>() {

        @Override
        public URI exec(XtextResource state) throws Exception {
            Main main = (Main) state.getContents().get(0);
            Element element = main.getElements().get(1);
            return EcoreUtil.getURI(element);
        }
    });
    Issue.IssueImpl issue = new Issue.IssueImpl();
    issue.setUriToProblem(uriToProblem);
    issue.setCode(QuickfixCrossrefTestLanguageQuickfixProvider.SEMANTIC_FIX_ID);
    List<IssueResolution> resolutions = issueResolutionProvider.getResolutions(issue);
    assertEquals(1, resolutions.size());
    IssueResolution issueResolution = resolutions.get(0);
    issueResolution.apply();
    xtextEditor.doSave(null);
    List<Issue> issues = getAllValidationIssues(xtextEditor.getDocument());
    assertTrue(issues.isEmpty());
}
Also used : IFile(org.eclipse.core.resources.IFile) Issue(org.eclipse.xtext.validation.Issue) XtextEditor(org.eclipse.xtext.ui.editor.XtextEditor) Element(org.eclipse.xtext.ui.tests.quickfix.quickfixCrossref.Element) IssueResolution(org.eclipse.xtext.ui.editor.quickfix.IssueResolution) XtextResource(org.eclipse.xtext.resource.XtextResource) URI(org.eclipse.emf.common.util.URI) Main(org.eclipse.xtext.ui.tests.quickfix.quickfixCrossref.Main) Test(org.junit.Test) AbstractQuickfixTest(org.eclipse.xtext.ui.testing.AbstractQuickfixTest)

Example 99 with Issue

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

the class LinkingErrorTest method testQuickfixTurnaround.

@Test
public void testQuickfixTurnaround() throws Exception {
    IFile dslFile = dslFile(MODEL_WITH_LINKING_ERROR);
    XtextEditor xtextEditor = openEditor(dslFile);
    IXtextDocument document = xtextEditor.getDocument();
    List<Issue> issues = getAllValidationIssues(document);
    assertFalse(issues.isEmpty());
    Issue issue = issues.get(0);
    assertNotNull(issue);
    List<IssueResolution> resolutions = issueResolutionProvider.getResolutions(issue);
    assertEquals(1, resolutions.size());
    IssueResolution resolution = resolutions.get(0);
    assertEquals("Change to 'Bar'", resolution.getLabel());
    resolution.apply();
    issues = getAllValidationIssues(document);
    assertTrue(issues.isEmpty());
}
Also used : IFile(org.eclipse.core.resources.IFile) Issue(org.eclipse.xtext.validation.Issue) XtextEditor(org.eclipse.xtext.ui.editor.XtextEditor) IssueResolution(org.eclipse.xtext.ui.editor.quickfix.IssueResolution) IXtextDocument(org.eclipse.xtext.ui.editor.model.IXtextDocument) Test(org.junit.Test) AbstractQuickfixTest(org.eclipse.xtext.ui.testing.AbstractQuickfixTest)

Example 100 with Issue

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

the class LinkingErrorTest method testBug361509.

@Test
public void testBug361509() throws Exception {
    IFile dslFile = dslFile(MODEL_WITH_LINKING_ERROR_361509);
    XtextEditor xtextEditor = openEditor(dslFile);
    IXtextDocument document = xtextEditor.getDocument();
    List<Issue> issues = getAllValidationIssues(document);
    assertFalse(issues.isEmpty());
    Issue issue = issues.get(0);
    assertNotNull(issue);
    List<IssueResolution> resolutions = issueResolutionProvider.getResolutions(issue);
    assertEquals(1, resolutions.size());
    IssueResolution resolution = resolutions.get(0);
    assertEquals("Change to 'ref'", resolution.getLabel());
    resolution.apply();
    issues = getAllValidationIssues(document);
    assertTrue(issues.isEmpty());
    assertEquals(MODEL_WITH_LINKING_ERROR_361509.replace("raf", "^ref"), document.get());
}
Also used : IFile(org.eclipse.core.resources.IFile) Issue(org.eclipse.xtext.validation.Issue) XtextEditor(org.eclipse.xtext.ui.editor.XtextEditor) IssueResolution(org.eclipse.xtext.ui.editor.quickfix.IssueResolution) IXtextDocument(org.eclipse.xtext.ui.editor.model.IXtextDocument) Test(org.junit.Test) AbstractQuickfixTest(org.eclipse.xtext.ui.testing.AbstractQuickfixTest)

Aggregations

Issue (org.eclipse.xtext.validation.Issue)108 Test (org.junit.Test)40 XtextResource (org.eclipse.xtext.resource.XtextResource)35 Resource (org.eclipse.emf.ecore.resource.Resource)23 List (java.util.List)20 IResourceValidator (org.eclipse.xtext.validation.IResourceValidator)20 URI (org.eclipse.emf.common.util.URI)16 ArrayList (java.util.ArrayList)12 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)12 IFile (org.eclipse.core.resources.IFile)11 XtendFile (org.eclipse.xtend.core.xtend.XtendFile)11 IXtextDocument (org.eclipse.xtext.ui.editor.model.IXtextDocument)11 IssueResolution (org.eclipse.xtext.ui.editor.quickfix.IssueResolution)11 XtextEditor (org.eclipse.xtext.ui.editor.XtextEditor)10 Severity (org.eclipse.xtext.diagnostics.Severity)9 IOException (java.io.IOException)8 CoreException (org.eclipse.core.runtime.CoreException)8 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)8 StringInputStream (org.eclipse.xtext.util.StringInputStream)8 EObject (org.eclipse.emf.ecore.EObject)6