Skip to main content



      Home
Home » Modeling » TMF (Xtext) » Changing unresolved reference diagnostic severity to warning
Changing unresolved reference diagnostic severity to warning [message #547267] Fri, 16 July 2010 03:28 Go to next message
Eclipse UserFriend
Hi,

I tried to change the unresolved reference diagnostic severity from error to warning.
Therefore I've overridden LinkingDiagnosticMessageProvider so that the created DiagnosticMessage's severity will be WARNING:
public class MyLinkingDiagnosticMessageProvider extends
		LinkingDiagnosticMessageProvider {
	
	public DiagnosticMessage getUnresolvedProxyMessage(ILinkingDiagnosticContext context) {
		EClass referenceType = context.getReference().getEReferenceType();
		String msg = "Couldn't resolve reference to " + referenceType.getName() + " '" + context.getLinkText() + "'.";
		// only change ERROR to WARNING
		//return new DiagnosticMessage(msg, DiagnosticSeverity.ERROR, Diagnostic.LINKING_DIAGNOSTIC);
		return new DiagnosticMessage(msg, DiagnosticSeverity.WARNING, Diagnostic.LINKING_DIAGNOSTIC);
	}
}

This works well except that the warning won't be removed anymore. When closing and reopening the file, all warnings are removed properly but not at "runtime". With severity level ERROR everything works fine.

Seems that I have forgotten to change the level somewhere else...

Any hint?
Re: Changing unresolved reference diagnostic severity to warning [message #548303 is a reply to message #547267] Wed, 21 July 2010 08:06 Go to previous messageGo to next message
Eclipse UserFriend
Hi Alex,

this is a bug - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=320490
Workaround:
Override XtextResource#addSyntaxErrors() with

getWarnings().clear();
super.addSyntaxErrors();

Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

Am 16.07.10 09:28, schrieb Alex:
> Hi,
>
> I tried to change the unresolved reference diagnostic severity from
> error to warning.
> Therefore I've overridden LinkingDiagnosticMessageProvider so that the
> created DiagnosticMessage's severity will be WARNING:
>
> public class MyLinkingDiagnosticMessageProvider extends
> LinkingDiagnosticMessageProvider {
>
> public DiagnosticMessage
> getUnresolvedProxyMessage(ILinkingDiagnosticContext context) {
> EClass referenceType = context.getReference().getEReferenceType();
> String msg = "Couldn't resolve reference to " + referenceType.getName()
> + " '" + context.getLinkText() + "'.";
> // only change ERROR to WARNING
> //return new DiagnosticMessage(msg, DiagnosticSeverity.ERROR,
> Diagnostic.LINKING_DIAGNOSTIC);
> return new DiagnosticMessage(msg, DiagnosticSeverity.WARNING,
> Diagnostic.LINKING_DIAGNOSTIC);
> }
> }
> This works well except that the warning won't be removed anymore. When
> closing and reopening the file, all warnings are removed properly but
> not at "runtime". With severity level ERROR everything works fine.
> Seems that I have forgotten to change the level somewhere else...
>
> Any hint?
Re: Changing unresolved reference diagnostic severity to warning [message #548500 is a reply to message #548303] Thu, 22 July 2010 04:01 Go to previous messageGo to next message
Eclipse UserFriend
Thanks for that hint!

I implemented the class
public class MyXtextResource extends XtextResource {
	
	// workaround for bug
	@Override
	protected void addSyntaxErrors() {
		getWarnings().clear();
		super.addSyntaxErrors();
	}
}


and made known in the MyDslRuntimeModule
@Override
	public Class<? extends XtextResource> bindXtextResource() {
		return MyXtextResource.class;
	}

(without changing the severity level)

Now it seems linking doesn't work anymore. F3 / Ctrl+Click doesn't take me to the linked object and there are no errors/warnings any more...

Did I forget something?
Re: Changing unresolved reference diagnostic severity to warning [message #548508 is a reply to message #548500] Thu, 22 July 2010 04:27 Go to previous messageGo to next message
Eclipse UserFriend
Hi Alex,

please let your MyXtextResource extend the LazyLinkingResource.

Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

Am 22.07.10 10:01, schrieb Alex:
> Thanks for that hint!
>
> I implemented the class
> public class MyXtextResource extends XtextResource {
>
> // workaround for bug
> @Override
> protected void addSyntaxErrors() {
> getWarnings().clear();
> super.addSyntaxErrors();
> }
> }
>
> and made known in the MyDslRuntimeModule
> @Override
> public Class<? extends XtextResource> bindXtextResource() {
> return MyXtextResource.class;
> }
> (without changing the severity level)
>
> Now it seems linking doesn't work anymore. F3 / Ctrl+Click doesn't take
> me to the linked object and there are no errors/warnings any more...
>
> Did I forget something?
Re: Changing unresolved reference diagnostic severity to warning [message #548573 is a reply to message #548508] Thu, 22 July 2010 07:51 Go to previous messageGo to next message
Eclipse UserFriend
Maybe I'm foolish but how can I override XtextResource#addSyntaxErrors() when MyXtextResource doesn't extend XtextResource?

LazyLinkingResource doesn't have such a method addSyntaxErrors()...
Re: Changing unresolved reference diagnostic severity to warning [message #548580 is a reply to message #548573] Thu, 22 July 2010 08:03 Go to previous messageGo to next message
Eclipse UserFriend
Hi,

LazyLinkingResource inherits from XtextResource and has thereby of course a method addSyntaxErrors()

~Christian
Re: Changing unresolved reference diagnostic severity to warning [message #548594 is a reply to message #548580] Thu, 22 July 2010 08:20 Go to previous message
Eclipse UserFriend
oooooops didn't update my projects... Rolling Eyes sorry

[Updated on: Thu, 22 July 2010 08:20] by Moderator

Previous Topic:conditions in grammer
Next Topic:generate java files with valid imports
Goto Forum:
  


Current Time: Wed Apr 30 02:11:23 EDT 2025

Powered by FUDForum. Page generated in 0.09109 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top