0
我想使用Xtext的編輯器編輯EObject的String屬性,而不是編輯文本文件。我怎樣才能做到這一點?我發現this thread,但它只提到了創建臨時文件的解決方法。必須有一個更優雅的解決方案。我想創建一個自定義EditorInput
,但我不知道從哪裏開始。提前感謝任何指針!如何使用Xtext編輯屬性?
我想使用Xtext的編輯器編輯EObject的String屬性,而不是編輯文本文件。我怎樣才能做到這一點?我發現this thread,但它只提到了創建臨時文件的解決方法。必須有一個更優雅的解決方案。我想創建一個自定義EditorInput
,但我不知道從哪裏開始。提前感謝任何指針!如何使用Xtext編輯屬性?
由於2.2,支持的解決方案使用IEditedResourceProvider
和EmbeddedEditorFactory
(因爲編輯屬性總是屬於嵌入式編輯器)。在樣品的Xtend代碼(只要編輯修改屬性更新):基於
val injector = MyDslActivator.instance.getInjector(MyDslActivator.COM_EXAMPLE_MY_DSL)
val resourceSet = injector.getInstance(IResourceSetProvider).get(null)
val fileExtension = injector.getInstance(Key.get(String, Names.named(Constants.FILE_EXTENSIONS)))
val resourceProvider = [|
resourceSet.createResource(createURI('''temp.«fileExtension»''')) as XtextResource
]
injector.getInstance(EmbeddedEditorFactory).newEditor(resourceProvider).withParent(parent) => [
createPartialEditor("", editedAttribute ?: "", "", false)
document.addModelListener[_ | editedAttribute = document.get]
]