若需在PSI类中添加自定义方法,须单独定义这些方法,并配置Grammar Kit将其自动注入到生成的代码中。
1、 创建一个工具类,封装若干实用方法。
2、 该方法用于自定义键值对的获取逻辑。其中涉及的ProtoBufProperty相关代码并非手动编写,而是由协议缓冲区解析器自动生成;同理,element.getKey()方法也由解析器动态生成,不存在于原始源码中。所示。
3、 修改 protobuf.bnf 文件中的语法规则,并配置 psiImpUtil 工具,具体设置参见附图。
4、 更新 psiImplUtilClass 属性后,请重新生成解析器,具体操作所示。
5、 定义ProtobufUtil工具类,提供根据键名获取对应属性值的功能。
6、 ProtobufUtil 类通过 PsiTreeUtil 获取子类型,具体实现所示。
7、 已实现工具类的属性搜索功能及自定义方法,效果所示。
评论
更多评论