语法工具包(Grammar-Kit)使用教程
1. 项目介绍
Grammar-Kit 是由 JetBrains 开发的一个开源项目,它为 IntelliJ IDEA 提供了 BNF 语法文件和 JFlex 文件编辑支持,并能够生成解析器/PSI 代码。此插件是语言插件开发者的有力工具,可以帮助他们更轻松地构建自定义语言支持。
2. 项目快速启动
以下是快速启动 Grammar-Kit 项目的步骤:
首先,确保你的开发环境已经安装了 Java 17。
-
克隆项目到本地:
git clone https://github.com/JetBrains/Grammar-Kit.git
-
进入项目目录,并使用 Gradle 构建项目:
cd Grammar-Kit ./gradlew build
-
在 IntelliJ IDEA 中打开项目,并等待项目索引完成。
-
创建一个新的 BNF 文件(例如
Grammar.bnf
),并定义你的语法规则。 -
使用“实时预览”和“结构视图”(通过 Ctrl-Alt-P / Cmd-Alt-P 打开)调整语法。
-
生成解析器和 PSI 类(通过 Ctrl-Shift-G / Cmd-Shift-G)。
-
生成 JFlex 词法分析器定义文件,并运行 JFlex 生成器。
-
实现一个
ParserDefinition
并在plugin.xml
中进行相应的注册。 -
为 PSI 添加解析和其它非平凡功能。
3. 应用案例和最佳实践
- 重构:使用提取规则(Ctrl-Alt-M / Cmd-Alt-M)和引入令牌(Ctrl-Alt-C / Cmd-Alt-C)进行代码重构。
- 编辑:通过意图操作翻转选择分支(通过 Alt-Enter),或解包/移除表达式(通过 Ctrl-Shift-Del / Cmd-Shift-Del)。
- 导航:快速查看语法和 flex 文件结构(通过 Ctrl-F12 / Cmd-F12),导航到相关文件(解析器和 PSI)(通过 Ctrl-Alt-Home / Cmd-Alt-Home),或导航到匹配表达式(在属性模式内部通过 Ctrl-B / Cmd-B)。
- 高亮:自定义颜色设置(通过设置/颜色和字体),使用固定表达式标记,以及多种检查。
- 文档:查看规则文档和属性文档。
4. 典型生态项目
以下是一些使用 Grammar-Kit 开发的典型开源项目:
- Clojure-Kit
- intellij-rust
- intellij-erlang
- intellij-elm
- intellij-elixir
- Perl5-IDEA
- Dart
- intellij-haxe
- Cypher
通过上述教程,你将能够快速上手 Grammar-Kit 并开始构建自己的语言插件。