您可以调整
IQualifiedNameProvider
并使用
EObject
s
eResource
以及资源
URI
计算名称。
package org.xtext.example.mydsl10;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
import org.eclipse.xtext.naming.QualifiedName;
import org.xtext.example.mydsl10.myDsl.Greeting;
public class MyDslNameProvider extends DefaultDeclarativeQualifiedNameProvider {
public QualifiedName qualifiedName(Greeting g) {
URI uri = g.eResource().getURI();
// this is your job
String simpleName = uri.trimFileExtension().lastSegment();
return QualifiedName.create(simpleName, g.getName());
}
}
别忘了绑定
class MyDslRuntimeModule extends AbstractMyDslRuntimeModule {
override bindIQualifiedNameProvider() {
MyDslNameProvider
}
}