Fit*_*itz 5 dsl plugins eclipse-plugin intellij-idea xtext
我想为 Intellij Idea IDE 的一种语言制作一个插件。该语言是使用 Eclipse Xtext 开发的,并且是开源的。Eclipse 的插件已经存在。
我的目标是将这种语言移植到 Intellij Idea。我希望能够使用 Intellij 创建源文件,具有特定的语法突出显示并能够编译和运行用这种语言编写的程序。
是否有使用 Xtext 项目生成 Intellij Idea 插件的简单方法?
如果没有,是否有一种有效的解决方案能够在 Intellij 中突出显示特定的语法?(如果可能,采用自动方式,我不希望每次更新 Xtext 项目时都重写所有内容)
简答
是的,需要一些工作。
长答案
遗憾的是,Xtext 在后台使用 antlr,而 IntelliJ 使用他们自己的基于 Parsing Expression Grammars的语法工具包。因此,您可能已经猜到,由 XText 生成的解析和编辑器代码将不起作用。
为了让您的语言在 IntelliJ 中工作,您需要:
*.flex 文件是从 bnf 生成的。幸运的是,第 3 步中的大多数类都遵循非常相似的结构,因此可以轻松生成它们(稍后会详细介绍)。所以基本上,如果你设法生成 *.bnf 文件,你就成功了 80%。
尽管来自不同的技术,bnf文件的语法与XText文件非常相似。我最近将一些 antlr 语法迁移到 IntelliJ 的 bnf,我不得不做很小的改动。因此,应该可以从您的 XText 文件自动生成 bnf 文件。
这让我回到第 3 点。使用 XTend、Epsilon 的 EGL或类似工具,可以轻松生成所有样板类。作为我之前提到的迁移的一部分,我也这样做了。我正在公开代码,所以我会在完成后在这里发布并添加一些细节。
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |