我们目前正在测试语言服务器与EMFCloud.ModelServer实例之间的连接。我们能够在Model工作区中保存/编辑语义模型,如下面的回答所述。基本上,Language使用*.abcl文件处理我们的自定义语言,当用户保存文件中的更改时,Language对didSave操作作出反应,并将AST (EMF模型)保存在Model (使用XMI)中的文件*.abc (foo.abcl转换为-> foo.abc)中。AST (EMF模型)现在可用于其他EMF模型编辑器(即Theia树编辑器),例如,我们可以以不同的方式重命名节点或更改属性。
我们目前正在努力实现的是语言服务器对其他编辑器在我们的AST (*.abc文件)上所做的更改做出反应。为此,Language将订阅Model上的事件,并最终收到一个"fullUpdate“事件,指示AST已更改。
我们的问题是现在如何进行。我们可以考虑以下工作流:
如能提供一些指导,我们将不胜感激。
编辑:还发布了一个关于日蚀论坛的问题
发布于 2022-03-23 13:19:35
在对语言服务器的内部结构进行研究和测试之后,我发现了语言服务器在外部通过另一个编辑器(即树编辑器)更新/更改语义模型(AST)时的反应方式。以下是可能的工作流程:
String对象。- user rejects the changes
1. At this point the client + AST will still be in sync
2. The model in the Model Server will not be in sync with the client + AST
3. Text editor will show different information as other editorshttps://stackoverflow.com/questions/70987069
复制相似问题