mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-16 16:58:56 +00:00
[Xtext] [GrammarEditor] ContentAssist for grammar inheritance see https://bugs.eclipse.org/bugs/show_bug.cgi?id=459866
Change-Id: Ic9956ee742ee7c65c0ed84c239120bdf24f0af9f
This commit is contained in:
parent
196296613d
commit
785a39d785
1 changed files with 13 additions and 1 deletions
|
@ -35,6 +35,7 @@ import org.eclipse.xtext.naming.QualifiedName;
|
|||
import org.eclipse.xtext.resource.EObjectDescription;
|
||||
import org.eclipse.xtext.resource.IEObjectDescription;
|
||||
import org.eclipse.xtext.resource.IResourceDescription;
|
||||
import org.eclipse.xtext.scoping.IGlobalScopeProvider;
|
||||
import org.eclipse.xtext.scoping.IScope;
|
||||
import org.eclipse.xtext.scoping.impl.AbstractScopeProvider;
|
||||
import org.eclipse.xtext.scoping.impl.GlobalResourceDescriptionProvider;
|
||||
|
@ -54,8 +55,11 @@ public class XtextScopeProvider extends AbstractScopeProvider {
|
|||
@Inject
|
||||
private GlobalResourceDescriptionProvider resourceDecriptionProvider;
|
||||
|
||||
@Inject
|
||||
private IGlobalScopeProvider globalScopeProvider;
|
||||
|
||||
@Override
|
||||
public IScope getScope(EObject context, EReference reference) {
|
||||
public IScope getScope(final EObject context, EReference reference) {
|
||||
if (reference == XtextPackage.eINSTANCE.getTypeRef_Classifier()) {
|
||||
if (context instanceof TypeRef) {
|
||||
final TypeRef typeRef = (TypeRef) context;
|
||||
|
@ -80,6 +84,14 @@ public class XtextScopeProvider extends AbstractScopeProvider {
|
|||
return IScope.NULLSCOPE;
|
||||
|
||||
}
|
||||
if(reference == XtextPackage.eINSTANCE.getGrammar_UsedGrammars()){
|
||||
return globalScopeProvider.getScope(context.eResource(), reference, new Predicate<IEObjectDescription>(){
|
||||
@Override
|
||||
public boolean apply(IEObjectDescription input) {
|
||||
return input.getEObjectOrProxy() != context;
|
||||
}
|
||||
});
|
||||
}
|
||||
return createScope(context.eResource(), reference.getEReferenceType());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue