将代码从文本编辑器和过去复制到 Jetbrains MPS
Copy code from text editor and past into Jetbrains MPS
我想从文本编辑器复制一个 json 片段,然后将其复制到我的 json 语言中。因此,我必须解析该片段并从中创建 AST,这不是问题。
但是,如何将该操作集成到 MPS 中? Paste Wrappers
和 Copy and Paste Handlers
旨在用于 MPS 中的复制和粘贴操作,因为它们已经与 AST 一起工作,对吧?
是否可以挂接到 "plain text" 粘贴操作?
有什么我可以借鉴的建议或例子吗?
MPS 为 Java 代码提供了此功能,它是作为自定义操作(单独的上下文菜单项)实现的。实现在名为 PasteAsJavaClass (URL: http://127.0.0.1:63320/node?ref=r%3Ac6bc30d1-d0d1-44c6-ba7e-90e78619615e%28jetbrains.mps.ide.java.actions%29%2F2872212824181502651)
的操作中
由 MPS Slack 的 Sergej Koščejev 回答
另一种使用 Antlr 的方法:
假设你有一个自定义的基于文本的 DSL,你想将 DSL 代码导入 MPS,然后你必须解析它,你必须将解析树映射到你的 MPS 模型。
Frederico Tomasetti 写了一篇关于 how to integrate antlr and mps 的博客 post。
我想从文本编辑器复制一个 json 片段,然后将其复制到我的 json 语言中。因此,我必须解析该片段并从中创建 AST,这不是问题。
但是,如何将该操作集成到 MPS 中? Paste Wrappers
和 Copy and Paste Handlers
旨在用于 MPS 中的复制和粘贴操作,因为它们已经与 AST 一起工作,对吧?
是否可以挂接到 "plain text" 粘贴操作?
有什么我可以借鉴的建议或例子吗?
MPS 为 Java 代码提供了此功能,它是作为自定义操作(单独的上下文菜单项)实现的。实现在名为 PasteAsJavaClass (URL: http://127.0.0.1:63320/node?ref=r%3Ac6bc30d1-d0d1-44c6-ba7e-90e78619615e%28jetbrains.mps.ide.java.actions%29%2F2872212824181502651)
的操作中由 MPS Slack 的 Sergej Koščejev 回答
另一种使用 Antlr 的方法:
假设你有一个自定义的基于文本的 DSL,你想将 DSL 代码导入 MPS,然后你必须解析它,你必须将解析树映射到你的 MPS 模型。
Frederico Tomasetti 写了一篇关于 how to integrate antlr and mps 的博客 post。