【发布时间】:2019-05-12 07:29:14
【问题描述】:
我使用 ANTLRv4 语法来解析我的 DSL。我想为我的 DSL 创建一个插件来支持 IntelliJ IDEA 中的代码高亮和代码完成。
据我所知,IntelliJ 使用 BNF 和 Flex 格式进行解析。
是否可以:
- 使用 ANTLR 语法,或
- 将 ANTLR 语法转换为 BNF 和 Flex ...
...为我的 DSL 制作一个 IntelliJ 插件?
【问题讨论】:
-
如果是java(而不是全新的语言),最好使用intellij已经构建好的AST/node结构。为了向 intellij 添加新的语言支持,我以前做过一次,我只使用了 Flex 解析器格式,因为它与 intellij 插件架构巧妙地插入。如果你想使用 ANTLR,那么你必须找到一种方法让它工作......对我来说似乎更复杂
-
This 2013 post 由 ANTLR 的创建者兼 IntelliJ 用户 Terence Parr 撰写,似乎表明他梦想提供您所要求的功能,但目前还没有。 (不是我的专业领域,所以我可能混淆了这些问题。)
-
我对“尝试 ANTLR v4 语法插件 – Andrey 2018 年 12 月 11 日 11:07”的回复:该插件不是旨在从现有的 ANTLR 生成 IntelliJ 插件语法。
-
@BasilBourque 是的,在我看来,您准确地阅读了 Parr 先生的博文。
标签: intellij-idea antlr grammar jetbrains-ide intellij-plugin