跳到主要内容

intellij插件

Go-Zero Plugin

介绍

一款支持go-zero api语言结构语法高亮、检测以及api、rpc、model快捷生成的插件工具。

idea版本要求

  • IntelliJ 2019.3+ (Ultimate or Community)
  • Goland 2019.3+
  • WebStorm 2019.3+
  • PhpStorm 2019.3+
  • PyCharm 2019.3+
  • RubyMine 2019.3+
  • CLion 2019.3+

版本特性

  • api语法高亮
  • api语法、语义检测
  • struct、route、handler重复定义检测
  • type跳转到类型声明位置
  • 上下文菜单中支持api、rpc、mode相关menu选项
  • 代码格式化(option+command+L)
  • 代码提示

安装方式

方式一

在github的release中找到最新的zip包,下载本地安装即可。(无需解压)

方式二

在plugin商店中,搜索Goctl安装即可

预览

preview

新建 Api(Proto) file

在工程区域目标文件夹右键->New-> New Api(Proto) File ->Empty File/Api(Proto) Template,如图: preview

快速生成api/rpc服务

在目标文件夹右键->New->Go Zero -> Api Greet Service/Rpc Greet Service

preview

Api/Rpc/Model Code生成

方法一(工程区域)

对应文件(api、proto、sql)右键->New->Go Zero-> Api/Rpc/Model Code,如图:

preview

方法二(编辑区域)

对应文件(api、proto、sql)右键-> Generate-> Api/Rpc/Model Code

错误提示

context menu

Live Template

Live Template可以加快我们对api文件的编写,比如我们在go文件中输入main关键字根据tip回车后会插入一段模板代码

func main(){

}

或者说看到下图你会更加熟悉,曾几何时你还在这里定义过template context menu

下面就进入今天api语法中的模板使用说明吧,我们先来看看service模板的效果 context menu

首先上一张图了解一下api文件中几个模板生效区域(psiTree元素区域) context menu

预设模板及生效区域

模板关键字psiTree生效区域描述
@docApiServicedoc注释模板
docApiServicedoc注释模板
structStructstruct声明模板
infoApiFileinfo block模板
typeApiFiletype group模板
handlerApiServicehandler文件名模板
getApiServiceget方法路由模板
headApiServicehead方法路由模板
postApiServicepost方法路由模板
putApiServiceput方法路由模板
deleteApiServicedelete方法路由模板
connectApiServiceconnect方法路由模板
optionsApiServiceoptions方法路由模板
traceApiServicetrace方法路由模板
serviceApiFileservice服务block模板
jsonTag、Tag literaltag模板
xmlTag、Tag literaltag模板
pathTag、Tag literaltag模板
formTag、Tag literaltag模板

关于每个模板对应内容可在Goland(mac Os)->Preference->Editor->Live Templates-> Api|Api Tags中查看详细模板内容,如json tag模板内容为

json:"$FIELD_NAME$"

context menu