Я хочу использовать редактор Xtext для редактирования атрибута String EObject вместо редактирования текстового файла. Как я могу это достичь? Я нашел this thread, но в нем упоминается обходной способ создания временного файла. Должно быть более элегантное решение. Я думал о создании пользовательского EditorInput
, но я не уверен, с чего начать. Спасибо заранее за любые указатели!Как отредактировать атрибут с помощью Xtext?
0
A
ответ
0
С 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]
]
основе: EditTemplateDialog source, StackOverflow, Eclipse Forum.