美文网首页Gogo
Golang goland idea+golint+go fmt

Golang goland idea+golint+go fmt

作者: 承诺一时的华丽 | 来源:发表于2019-02-21 18:04 被阅读68次

    一、Go的相关插件工具简介

    • golint 代码的风格检测
    • go fmt 重新格式化Go源代码
    • goimports 引用包的优化
    • gometalinter 同时运行Go lint工具并规范化其输出
    • go vet 代码的语法检查

    二、插件工具使用

    1、golint

    • 安装golint
    #下载源码
    > go get github.com/golang/lint/
    #编译包并生产可执行文件到bin目录下($GOPATH/bin)
    > go install github.com/golang/lint/golint
    
    • 打开goland进行设置,点击Settings
      打开设置
    • 选择External Tools并新建+
      选择External Tools并新建+
    • 参数说明:
    Name : golint  #Tool名称
    Description: golint  #Tool描述
    Program : $GOPATH\bin\golint.exe #选择golint可执行文件的位置
    Atguments: $FilePath$ #魔法变量(执行当前go文件的路径)
    Working directory: $ProjectFileDir$ #魔法变量(当前项目的路径)
    
    • 设置快捷键Keymap -> External Tools -> External Tools -> golint -> Add Keyboard Shortcut(右键)


      新增快捷键
    • 连续按着键盘进行设置


      设置快捷键
    • 选择项目中的一个go文件进行【快捷键测试】


      测试结果
    • git commit 提交代码测试

      提交代码测试
      注意:这是 commit 提交之后才进行代码检测

    2、gofmt+goimports+gometalinter

    • 打开goland进行设置,点击Settings
      打开设置
    • goland 设置插件,File Watchers -> + -> 分别点击安装go fmtgoimportsgometalinter
      image.png
    • 修改代码后按住Ctrl+S就可以看到效果了
      gofmt 、 goimports直接就可以看见代码修改的效果
      gometalinter的效果
      gometalinter

    3、go tool vet

    • 使用go tool vet针对单个文件进行代码检查
    > go tool vet global/init.go
    

    测试结果


    go vet
    • 使用go tool vet针对整个项目进行代码检查
    > go tool vet ../zlsc_image
    

    测试结果

    >go tool vet ../zlsc_image
    ..\zlsc_image\global\init.go:144: struct field c_ip has json tag but is not exported
    ..\zlsc_image\global\init.go:145: struct field college_id has json tag but is not exported
    ..\zlsc_image\global\init.go:146: struct field status has json tag but is not exported
    ..\zlsc_image\global\init.go:147: struct field camera_status has json tag but is not exported
    ..\zlsc_image\global\init.go:148: struct field sign_status has json tag but is not exported
    ..\zlsc_image\utils\file.go:160: Println call has possible formatting directive %s
    ..\zlsc_image\utils\file.go:172: Println call has possible formatting directive %s
    ..\zlsc_image\utils\file.go:184: Println call has possible formatting directive %s
    ..\zlsc_image\utils\image.go:89: unreachable code
    ..\zlsc_image\utils\image.go:79: image/jpeg.Options composite literal uses unkeyed fields
    ..\zlsc_image\utils\pic.go:388: unreachable code
    ..\zlsc_image\utils\uid.go:57: result of fmt.Sprintf call not used
    ..\zlsc_image\utils\uid.go:61: result of fmt.Sprintf call not used
    ..\zlsc_image\utils\uid.go:70: result of fmt.Sprintf call not used
    ..\zlsc_image\utils\uid.go:98: result of fmt.Sprintf call not used
    ..\zlsc_image\utils\convert\map.go:182: unreachable code
    ..\zlsc_image\utils\convert\map.go:196: unreachable code
    ..\zlsc_image\utils\convert\map.go:210: unreachable code
    ..\zlsc_image\utils\convert\map.go:224: unreachable code
    

    相关文章

      网友评论

        本文标题:Golang goland idea+golint+go fmt

        本文链接:https://www.haomeiwen.com/subject/phldyqtx.html