瀏覽代碼

Scope for FakeDocument is 'ResourceSet' (Live)

benjamin.schwertfeger@gmail.com 13 年之前
父節點
當前提交
9b1d6fbbe9

+ 23 - 6
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/STextRuntimeModule.java

@@ -1,7 +1,14 @@
 package org.yakindu.sct.model.stext;
 
 import org.eclipse.xtext.linking.ILinker;
-import org.eclipse.xtext.scoping.impl.ResourceSetGlobalScopeProvider;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+import org.yakindu.sct.model.stext.naming.StextNameProvider;
+import org.yakindu.sct.model.stext.scoping.NamespaceLocalScopeResolver;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
 
 import de.itemis.xtext.utils.gmf.resource.InjectMembersLazyLinker;
 
@@ -9,15 +16,25 @@ import de.itemis.xtext.utils.gmf.resource.InjectMembersLazyLinker;
  * Use this class to register components to be used at runtime / without the Equinox extension registry.
  */
 public class STextRuntimeModule extends org.yakindu.sct.model.stext.AbstractSTextRuntimeModule {
-
-	public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
-		super.bindIGlobalScopeProvider();
-		return ResourceSetGlobalScopeProvider.class;
-	}
 	
 	@Override
 	public Class<? extends ILinker> bindILinker() {
 		return InjectMembersLazyLinker.class;
 	}
+
+	@Override
+	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return StextNameProvider.class;
+	}
+
+	// contributed by
+	// org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIScopeProviderDelegate(Binder binder) {
+		binder.bind(IScopeProvider.class)
+				.annotatedWith(
+						Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
+				.to(NamespaceLocalScopeResolver.class);
+	}
+
 }