我想在XText中交叉引用,而不是使用另一个文件中的某个属性,而是使用文件元数据(文件名)。
import: "string_msg/msg/StringMessage"
inputs:
name: testString
type: types.string_msg.StringMessage # this is the cross-reference
description: "Here goes some type of description or the other"
语言“string_msg / msg / StringMessage”只属于包含属性信息,而不包含类型名称。我必须从文件名派生类型名称,但理想情况下可以使引用文件的模型对象可用。
我该怎么做?到目前为止我看到的所有示例都通过其name属性引用了其他EObject。
答案 0 :(得分:0)
您可以调整public class MyViewModel : ViewModelBase
{
public MyItems MySelectedItem
{
get { return mySelectedItem; }
set
{
mySelectedItem= value;
InitiateBgWorker();
OnPropertyChanged("MySelectedItem");
}
}
}
// Other properties, methods, etc.
}
并使用IQualifiedNameProvider
s EObject
和资源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());
}
}