参考文档: http://www.jianshu.com/p/100439269148
idea plugin: https://www.cnblogs.com/huaxingtianxia/p/5713411.html