1、定义一个帮助类,在其中定义一些方法。如图
2、自定义获取键值对的方法。ProtoBufProperty相关的代码,并不存在现有的代码中,它是通过解析器生成的。还有“element.getKey”方法,也是由解析器生成的。如图
3、修改“protobuf.bnf”文件中的规则。添加psiImpUtil工具配置。如图
4、更新psiImplUtilClass attribute以后,重新生成解析器。如图
5、定义一个ProtobufUtil类,用于根据键获取属性。如图
6、ProtobufUtil类中使用PsiTreeUtil获取到子类型。如图
7、实现了工具类搜索属性。以及自定制方法。如图