IDEA开源代码生成插件EasyCode源码分析
1.理论准备:
在IntelliJ官网强行看了一会英语,最终放弃。 一是阅读时间过慢,二是全部看有些浪费时间。看了很多相关的博客,个人认为这个很不错,地址: IntelliJ IDEA插件结构。
2.架构分析:
到目前为止,我已经拿到源码调试通过过去了两三天了,始终不能较为连贯的将各种知识范畴给联系起来,所以趁今天有时间将其整理整理,按照个人的理解理了个图。
上图中,我主要关注的点在右边橘红色部分,也是该代码插件主要的功能实现。
3.核心代码结构分析:
最新版(1.2.4版本),其实体有16个,我将其按照功能分类进行一下整理:
上图为实现代码生成的核心实体。
4.执行流程-源码分析:
首先,我们从它的使用方式来看:
从这里结合前期的理论准备,我们需要知道这样的一些配置:
接口体系如下:
点击相应的菜单,会跳转到相应的界面。 注意,这边的类均是 swing下的,它们本身可以看作是相应的视图,有自己的视图接口体系,所以我只看与逻辑相关的代码,一些事件监听之类的方法就跳过。
以生成代码为例子:
总之,要进行代码的生成,必须有合法的列名与实体类型的映射关系。验证合法后,通过点击菜单,将会打开一个视图实体,SelectSavePath,它是Dialog的子类。其构造方法如下:
最后,根据配置,选择是否需要格式化代码。 代码生成的一个大体流程就是这样。
5.配置分析:
该文件,几乎包括了对该插件所有 源 , 的配置。
大体的配置逻辑便是这样,相应的页面样式,这里就不继续分析了。 待后面更加熟悉之后,再行看情况进行分析。
此外,关于velocity模板部分还未进行学习,感觉挺强大的,值得一学。。 。
感谢开源的大佬无私奉献,让我们有机会接触方方面面的知识。