2016-04-20 10 views
1

Кто-то знает, как отключить глобальную область действия в XText 2.9? Я хочу отключить глобальную область, чтобы иметь доступ только к элементам файлов, которые я импортирую. Например:Как отключить глобальную область действия в XText 2.9?

file1.mydsl: 
element A(C){ 
    ; 
} 
subelement C{ 
    ; 
} 

file2.mydsl: 
element B(C){ 
    ; 
} 

Это должно вернуть ошибку в file2.mydsl, потому что я не импортировали «file1.mydsl». Я должен добавить строку - import «file1.mydsl» - чтобы избежать ошибки. Как я могу это сделать в Xtext 2.9? У меня есть рабочий код, который делает то, что я хочу, но код использует Xtext 2.8 и не работает в версии 2.9.

ответ

1

привет вы можете переключиться на 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); 

    } 

} 
+0

Благодаря много! Он работает: D –

Смежные вопросы