即刻代码, 一款 IntelliJ 通用代码生成插件

为什么要自动生成代码?

不知道你在用 MyBatis 访问数据库时, 有没有用 MyBatis Generator 自动生成数据表对应的实体、Mapper 以及 XML 文件, 如果还没有使用过, 建议你用一下, 也许你用之后会有一种 "相见恨晚" 的感觉.

在我看来自动生成代码有以下优势:

  • 最佳实践. 编写模板时往往会有更多的思考, 会吸收一些最佳实践经验, 采用最新的语言特性.
  • 不易出错. 手工编写代码会不经意间引入错误, 而自动生成代码往往经过了很多次实践测试, 更不易出错.
  • 节约时间. 我们在编写的很多代码是类似的, 比如对一个对象的增删查改, 我们有过编写几次的经验就够了, 之后尽量能自动生成基础的代码, 节约时间.

插件简介

即刻代码的基本原理是根据文件的名称和路径, 智能选择本地适合的 FreeMarker 模板, 然后生成相应的代码. 即刻代码具有以下特性:

  • 适用于在新建文件时, 用模板快速填充代码, 让你在即刻之间完成基本代码的编写.
  • 也适用于快速填充一些代码块和方法体. (开发完善中...)
  • 模板高度可定制, 模板存放在 ~/.tpl 目录下, 采用 FreeMarker 模板语言编写, 该模板语言上手容易, 还能充分利用其内置的工具函数. 插件和模板分离使得用户可以高度定制自己的模板, 以适配各自的业务场景, 你还可以将自己的模板加入版本控制, 上传到 Github 上备份, 并分享给他人.
  • 即刻代码提供编写模板所需的变量, 比如 className, packageName, entityName 等等.
  • 直接在 IDE 中生成代码, 无需拷贝, 无需根据项目进行配置.

源码获取地址: https://github.com/henryhyn/geek-code, 欢迎提 Issue, 或贡献代码.

安装插件

下载地址: http://kaiyuanshuwu.com/geek-code.zip

打开 IDE 设置框 (快捷键: Command+,), 如下图所示

在左侧选择 Plugins, 下方选择 Install plugin from disk..., 选择前面下载到的 geek-code.zip, 点击 OK 按钮, 然后重启 IDE 即可.

插件会安装到 ~/Library/Application Support/<IntelliJ> 目录下, 本质上就是将上面的压缩包, 解压缩到这个目录下, 很方便, 有木有!

配置模板

在用户 Home 目录下, 创建 .tpl 目录, 用于存放 FreeMarker 模板文件, 比如我有如下模板 (源码获取地址):

$ ls ~/.tpl
java_block_getter.ftl
java_block_setter.ftl
java_file_controller.ftl
java_file_service.ftl
vue_file_card.ftl
vue_file_list.ftl

模板的命名规则: <lang>_<block|file>_<type>.ftl, 其中

  • <lang> 表示代码的语言类型, 比如 java, vue
  • <file> 表示填充整个文件
  • <block> 表示填充代码块或方法体
  • <type> 表示文件类型, 比如控制层 Controller, 服务层 Service 等等

在模板文件中, 可以使用以下内置变量

  • author 当前用户名, 比如 Henry
  • date 当前日期, 比如 2017/11/29
  • className 类名称, 比如 PoiTagService
  • entityName 实体名称, 比如 PoiTag
  • simpleName 变量名称, 比如 Tag
  • simpleNamePlural 变量名称的复数形式, 比如 Tags
  • packageName 包名称, 比如 com.dianping.poi.tags.service, Java 语言特有

编写模板时, 还可以使用 FreeMarker 内置的所有函数, 常见的有

  • <#if comment??> 表示 comment 变量是否为空
  • ${entityName?uncap_first} 首字母小写, 比如 poiTag

如果你现在只想快速的体验一下, 不想一上来就要自己编写模板, 那么可以先克隆我的模板代码

git clone https://github.com/henryhyn/my-geek-code-tpl.git ~/.tpl

使用方法

首先使用 IDE 新建文件, 接着使用快捷键 Command+N, 将弹出快捷菜单, 如下图所示

默认选中生成类文件, 回车即可

注意: 生成方法功能还在开发中, 不建议使用

最后, 欢迎你使用即刻代码插件, 体验快速编程的感觉!

参考文献