IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧 -> 正文阅读

[开发工具]Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧

在这里插入图片描述

快捷键大全

Windows/Linux版本

image-20221002213235635

Mac版本

image-20221002213356964

代码自动生成

1. 动态模板

在 GoLand 中,预定义的动态模板位于 Preferences → Editor → Live Templates ,并且分组。

image-20221002210259720

插入动态模板

键入模板缩写并按调用键(通常Tab默认情况下)。

或者,在代码菜单上,单击插入动态模板 Ctrl+J以打开建议列表并选择必要的模板。

用动态模板包围代码块

  1. 选择一段代码被包围。
  2. 在代码菜单上,单击环绕 Ctrl+Alt+J以打开建议列表并选择必要的模板。

动态模板的类型

区分以下类型的动态模板:

  • 简单模板 只包含固定的纯文本。当你展开一个简单的模板时,文本会自动插入到你的源代码中,替换缩写。

    缩写扩展到
    impimport ( )
    intfunc init() { }
    mainfunc main() { }
  • 参数化模板 包含启用用户输入的变量。当你展开参数化模板时,变量要么替换为输入字段供用户手动指定,要么由 GoLand 自动计算。

    缩写扩展到
    forrfor key, value := range collection { }
    methfunc (receiver ) name(params) { }
  • 环绕模板 用用户指定的文本包装选定的代码块。

    Postfix 代码完成类似于动态模板。它转换当前表达式而不选择它。例如,你可以.if在表达式后键入以调用相应的后缀完成并用if语句包装表达式。

配置动态模板

要配置动态模板,请打开Editor | IDE 设置的Live TemplatesCtrl+Alt+S页面。在Live Templates页面上,你可以查看所有可用的动态模板、编辑它们并创建新模板

可参考 在 GoLand 中使用自定义动态模板高效编程

2. 自动生成注释(Goanno)

安装

  • 方式一:goland plugins marketplace(搜索Goanno)
  • 方式二:下载release jar(goland install from disk) goanno.jar

使用

  • 方式一:在函数上方点击快捷键 control + commond + / (windows: control + alt + /)
  • 方式二:右键->Generate -> Goanno
自定义模板

通过Tools-Goanno Setting编辑模版信息

3. 自动生成测试文件(Goanno)

demo

安装

最低 Go 版本: Go 1.6

用于go get安装和更新:

// Go 版本:< Go 1.17
go get -u github.com/cweill/gotests/...
// Go 版本:>= Go 1.17
go install -u github.com/cweill/gotests/...

用法

从命令行,gotests可以为特定的源文件或整个目录生成 Go 测试。默认情况下,它将其输出打印到stdout.

gotests [options] PATH ...
options说明
-all           generate go tests for all functions and methods 
-excl          regexp. generate go tests for functions and methods that don't match. Takes precedence over -only, -exported, and -all
-exported      generate go tests for exported functions and methods. Takes precedence over -only and -all
-i             print test inputs in error messages
-only          regexp. generate go tests for functions and methods that match only.Takes precedence over -all
-w             write output to (test) files instead of stdout
-nosubtests    disable subtest generation. Only available for Go 1.7+
-template_dir  optional. Path to a directory containing custom test code templates
  • 为源文件中所有的函数和方法生成test方法
gotests -all -w -i XXX.go
  • 为单个方法生成test方法
gotests -w -only ^XXX$ PATH

Goland中使用

  1. 光标移动到Method/Function上
  2. Command/Control+Shift+T

4. 自动格式化

GoLand也支持在保存代码时,自动调用 gofmtgoimports 来自动格式化代码。在GoLand(>=2019.3)中,是通过File Watchers插件来实现此功能的。

  • 首先,得保证安装了一个叫做”File Watchers”的插件,并设置为启用状态:
  • 然后,Tools → File Wathcers,一般引入go fmt,goimports即可

5. 自动生成tag

在 struct 结构里,可以在字段类型后敲入 json 或 xml 向结构添加标记。

6. 自动生成stuct的接口,tag,构造参数

1.stuct快速实现 Interface

操作步骤:

  1. 光标移动到struct 名称上
  2. Alt/Option + Enter
  3. 选择Implement Interface … Control+I
  4. 搜索你需要实现的interface

2.stuct快速抽象 Interface

操作步骤:

  1. 右键 struct 名称
  2. 选择 Refactor->Extract->Interface
  3. 选择要抽象的方法,填写interface名称

3.stuct快速生成tag

操作步骤:
1.把你的光标放在{}中间
2.Alt/Option + Enter
3.选择Add key to tag

4.stuct快速生成构造参数

操作步骤:

  1. 光标移动到struct 名称上
  2. Alt/Option + Enter
  3. Generate Constructor
  4. 选择属性

常见问题

Go module

1. GO目录中不存在go.mod文件

# 在该项目的根目录下,执行下面的命令:
go mod init task-manage   # task-manag就是项目的名称

go.sum 是记录所依赖的项目的版本的锁定。

2. Goland自动下载所有依赖

项目中使用了go.mod时可以使用以下命令自动下载全部依赖

方法一

go get -d -v ./...

方法二

go mod tidy

3. 导入本地 module

在这个module还没有发布到GitHub的情况下,如何import自己在本地创建的module?

在Go 1.17版本及之前版本的解决方法是使用go mod的replace指示符(directive)。假如你的module a要import的module b将发布到github.com/user/repo中,那么你可以手动在module的go.mod中的require块中手工加上一条:

require github.com/user/repo v1.0.0

注意v1.0.0这个版本号是一个临时的版本号。

然后在module a的go.mod中使用replace将上面对module b的require替换为本地的module b:

replace github.com/user/repo v1.0.0 => module b本地路径

这样go命令就会使用你本地正在开发、尚未提交github的module b了。

但这个本地路径是因开发者环境而异的。

可以使用go mod vendor

# vendor:将所有依赖包存到当前目录下的vendor目录下
go mod vendor

或者使用Go workspace

Go 1.18 版本中加入了 Go 工作区(Go workspace,也译作 Go 工作空间)辅助构建机制。

基于这个机制,我们可以将多个本地路径放入同一个 workspace 中,这样,在这个 workspace 下各个 module 的构建将优先使用 workspace 下的 module 的源码。工作区配置数据会放在一个名为 go.work 的文件中,这个文件是开发者环境相关的,因此并不需要提交到源码服务器上,这就解决了上面“伪造 go.mod”方案带来的那些问题。

go get -u github.com/cweill/gotests/…

测试

1. command-line-arguments [command-line-arguments.test]

golang ide执行 go test xxx_test.go 默认以file运行而没有引入依赖文件,需要主动引入依赖,执行测试文件之前需要先将源文件进行编译.通常: 项目在gopath或者项目根目录下,依赖可以正常找找到

解决方案1:go test -v

go test -v xxxx.go xxxx_test.go

解决方案2:goland ide 多选可快捷操作

选择要测试的文件, 就是没有_test后缀的文件
会出现 源文件和测试文件使用 |分割的写法.

解决方案3: go mod

使用mod模式 在根目录执行命令: go mod init [module-path] 使项目中出现go.mod文件 就可以执行了

赖可以正常找找到

解决方案1:go test -v

go test -v xxxx.go xxxx_test.go

解决方案2:goland ide 多选可快捷操作

选择要测试的文件, 就是没有_test后缀的文件
会出现 源文件和测试文件使用 |分割的写法.

解决方案3: go mod

使用mod模式 在根目录执行命令: go mod init [module-path] 使项目中出现go.mod文件 就可以执行了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:02:36  更:2022-10-08 21:06:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 18:53:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码