如何在 XText 2.9 中关闭全局范围?
How to turn off global scope in XText 2.9?
有人知道如何在 XText 2.9 中关闭全局范围吗?我想关闭全局范围,以便只能访问我导入的文件的元素。例如:
file1.mydsl:
element A(C){
;
}
subelement C{
;
}
file2.mydsl:
element B(C){
;
}
这应该 return 是 file2.mydsl 中的一个错误,因为我还没有导入 "file1.mydsl"。我应该添加行 - import "file1.mydsl" - 以避免错误。我怎样才能在 Xtext 2.9 中做到这一点?我有一个工作代码可以满足我的要求,但该代码使用 Xtext 2.8,不适用于 2.9 版本。
您好,您仍然可以切换到基于 importURI 的范围
https://bugs.eclipse.org/bugs/show_bug.cgi?id=491110
片段=org.eclipse.xtext.generator.adapter.FragmentAdapter{
片段 = org.eclipse.xtext.generator.scoping.ImportURIScopingFragment {}
}
或者简单地通过手动添加绑定
class MyDslRuntimeModule extends AbstractMyDslRuntimeModule {
override bindIGlobalScopeProvider() {
importuriglobalscopeprovider
}
override configureIScopeProviderDelegate(Binder binder) {
binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
.to(SimpleLocalScopeProvider);
}
}
有人知道如何在 XText 2.9 中关闭全局范围吗?我想关闭全局范围,以便只能访问我导入的文件的元素。例如:
file1.mydsl:
element A(C){
;
}
subelement C{
;
}
file2.mydsl:
element B(C){
;
}
这应该 return 是 file2.mydsl 中的一个错误,因为我还没有导入 "file1.mydsl"。我应该添加行 - import "file1.mydsl" - 以避免错误。我怎样才能在 Xtext 2.9 中做到这一点?我有一个工作代码可以满足我的要求,但该代码使用 Xtext 2.8,不适用于 2.9 版本。
您好,您仍然可以切换到基于 importURI 的范围
https://bugs.eclipse.org/bugs/show_bug.cgi?id=491110
片段=org.eclipse.xtext.generator.adapter.FragmentAdapter{ 片段 = org.eclipse.xtext.generator.scoping.ImportURIScopingFragment {} }
或者简单地通过手动添加绑定
class MyDslRuntimeModule extends AbstractMyDslRuntimeModule {
override bindIGlobalScopeProvider() {
importuriglobalscopeprovider
}
override configureIScopeProviderDelegate(Binder binder) {
binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
.to(SimpleLocalScopeProvider);
}
}