2012-02-23 2 views
1

я получил следующую XText грамматику:Scoping и импорт в XText

Model: 
    'model' name = ID imports += Import* items += Item* rules += Rule*; 

Import: 
    'import' importURI = STRING; 

Rule: 
    'rule' name = ID '(' items += [Item]* ')'; 

Item: 
    'item' name = ID; 

При открытии редактора, все Item ссылки в Rule с являются hilighted правильно, если они находятся в одном файле, и я могу прыгать к декларации с использованием F3. Однако это не работает, если я пытаюсь импортировать их из других файлов. Например:

Файл first.mydsl

model first 
import "second.mydsl" 
rule myRule (second) 

Файл second.mydsl

model second 
item second 

Если предположить, что эти два файла в той же папке, что до сих пор не найти «вторую» ссылку из импортируемого файла , Он также не работает, если я включаю расширение файла для импортированного файла или полный путь. Как получить Xtext для распознавания импортированного файла?

(crossposted к http://www.eclipse.org/forums/index.php/m/805182/#msg_805182)

ответ

0

пожалуйста, убедитесь, что вы настроить свой рабочий процесс следующим образом

 // scoping and exporting API 
     fragment = scoping.ImportURIScopingFragment {} 
     fragment = exporting.SimpleNamesFragment {} 

     // scoping and exporting API 
     // fragment = scoping.ImportNamespacesScopingFragment {} 
     // fragment = exporting.QualifiedNamesFragment {} 
     // fragment = builder.BuilderIntegrationFragment {} 
     .... 
     // fragment = types.TypesGeneratorFragment {} 
+0

Я изменил свой конфиг, как вы предложили. Теперь он бросает 'java.lang.IllegalStateException: не может переопределить окончательную привязку 'final org.eclipse.xtext.naming.IQualifiedNameProvider -> org.eclipse.xtext.naming.SimpleNameProvider (внесенный org.eclipse.xtext.generator.exporting.SimpleNamesFragment) ''всякий раз, когда я создаю артефакты. – Jorn

+0

Вы добавили что-то еще в свой рабочий процесс? можете ли вы разместить полный стек? –