GoLand 2020.1 引入了对 Go 模块支持的各种升级、几乎不需要用户交互的代码编辑功能,以及扩展的代码补全系列。
除此之外,还添加了新的代码检查、快速修复和其他改进,例如新的 LightEdit 模式(可让您在文本编辑器中打开文件,而无需创建或加载项目)、智能拼写和语法检查以及用于 Web 开发和数据库处理的新功能。
喜欢交互式学习,而不是阅读信息? 在 IDE 内完成 GoLand 2020.1 的功能教程。
现已支持 Go 1.13 的环境变量 GOPROXY
、GOPRIVATE
、GOSUMDB
、GONOPROXY
和 GONOSUMB
。
使用 Go Modules 项目模板配置其默认值。 只需点击 Environment 字段中的 Browse 图标即可打开新的 Environment Variables 对话框。
go.mod
文件支持 go
、module
、require
、replace
和 exclude
关键字代码补全、依赖项名称以及本地路径替换。
此外,也可以使用 Rename 和 Move 重构。 重命名或移动由 replace
语句引用的目录时,GoLand 将相应地更改 go.mod 文件中的路径。
现在,您还可以通过 Project 视图调用 Find Usages,以探索特定目录路径在 go.mod
文件中的使用位置。
在 GoLand 2020.1 中,您可以通过 Alt-Enter 获取缺失的依赖项并移除未使用的依赖项。
最后但同样重要的是,如果存在本地路径替换,则新版本将在您提交之前显示一条通知,这样您就不会意外提交它们。
GoLand 2020.1 将建议 if err != nil { ... }
来补全错误处理模式。 只需在表达式内输入 if
。
只需输入 type
关键字或 struct
和 interface
,即可更快地定义结构体和接口类型。
Fill Fields 操作在格式化规则要求时会在冒号后面添加空格。 它还会在组合文字声明中语句的末尾添加逗号。
现在,使用地图时,代码补全会在您补全键类型后将光标移到右中括号后面。
对于函数的返回类型,补全功能将为局部变量和零值提供适合相应返回值类型的建议。
智能代码补全会建议一个指向结构体初始值设定项的指针。
它还会建议在断言和类型 switch 用例中首先使用兼容类型。
在类型断言中,它提供已赋值变量的类型。
最后,它提供了表达式中可能指针的建议列表。
我们为注释添加了基本代码补全,这将使编写文档更加轻松! 它可为当前包声明建议名称,并为函数和方法建议参数名称。
除此之外,基本代码补全还可以建议文字和转换。
编写多值返回函数的签名时,GoLand 2020.1 会在逗号后面的返回类型周围添加括号。
当您在字符串文字中粘贴一些文本时,IDE 会转义双引号。
要详细了解无需执行任何操作即可使用的功能,请阅读您不知道的 GoLand 编辑功能一文。
Go 1.14 添加了对嵌入重叠接口的支持,我们也添加了此功能! 当您使用重叠接口描述类型的不同方面时,GoLand 不会将这些方面的重复方法报告为错误。
如果模块根包含 vendor 目录,则会在 Go 1.14 中自动启用 vendoring 模式。 对于 GoLand 2020.1,我们决定为 Go 1.13 及更早版本实现类似的行为。 IDE 会自动将导入解析到 vendor/ 文件夹(如果模块中存在)。
为了帮助您在调试或核心转储分析过程中更轻松地区分 goroutine,我们为其添加了分析器标签。
如果您想了解更多,请阅读这篇文章:如何在调试过程中查找 Goroutine。
现在,可以将宏用作运行或调试应用程序的参数。 在 Run/Debug Configurations 对话框中,点击 Go Tool 中的 + 或 Program arguments 字段即可打开新的 Macros 对话框,其中会列出要使用的可用宏。
此外,您现在还可以将配置文件存储在项目中。 在 Run/Debug Configurations 对话框的顶部,选择 Store 作为项目文件选项。
.else
Postfix Completion 模板可以快速添加 if
语句来检查表达式是否为假。
按下 Alt+Enter,可立即将非格式化调用更改为格式化调用。
现在,Create variable 快速修复会显示预期的类型提示,以便您更轻松地输入正确的值。
此新代码检查可以警告您注意非指针接收器上无效的指针方法调用,并提供了快速修复。
如果错误使用 uintptr
和 unsafe.Pointer
将整数转换为指针,Invalid conversions of uintptr to unsafe.Pointer 代码检查会发出警告。
Unmarshal is called with incorrect argument 检查可以分析对 json.Unmarshal
以及 encoding/json
、encoding/xml
和 encoding/gob
包的类似函数的调用。
Locks mistakenly passed by value 代码检查可帮助您避免意外复制包含锁定的值。
我们添加了新模板来帮助您快速创建声明组。 其中包括 consts
、vars
、types
和 imports
。 当您使用这些模板之一时,GoLand 将在声明名称周围添加大括号。
fori
模板可为经典的 for 循环插入样板代码。
Extract Method 重构会保留父函数和方法参数的原始顺序。
Rename 重构现在会自动检测声明的重命名。 这意味着当您手动重命名声明时,IDE 将显示一个装订区域图标,此图标会自动重命名声明的所有用法。
Navigate to implementations(Ctrl+Alt+B)和 Navigate to Declaration 或 Usages(Ctrl+B)现在会首先显示当前项目中的结果。
此外,默认情况下,Find Usages(Alt+F7)操作现在会始终查找接口方法的用法。 要像以前一样查找当前方法的用法,请在 Alt+Shift+Ctrl+F7.
现在,新的 Commit 工具窗口包含 Local Changes 和 Shelf 标签页。 此工具窗口涵盖了与提交有关的所有任务,例如检查差异,选择要提交的文件和块,以及输入提交消息。 Commit 是位于屏幕左侧的垂直工具窗口,这样就为整个编辑器留出了显示差异的空间。
Branches 弹出窗口在多个方面进行了重新设计:
我们还大幅重新设计了 Interactively Rebase from Here。 您可以利用此对话框编辑、组合及移除之前的提交,从而让您的提交历史记录更加清晰易懂。
要调用此对话框,请转到 Git 工具窗口的 Log 标签页,在要编辑的一系列提交中选择最旧的提交,点击右键,然后选择 Interactively Rebase from Here。
使用新的智能意图和检查 (Alt+Enter) 可在编码时节省时间! 例如,您现在可以快速地将现有代码转换为可选链和/或空值合并,该语法已在最新版本的 JavaScript 和 TypeScript 中引入。
对于 JavaScript 和 TypeScript,Documentation 弹出窗口现在会显示更多有用的信息,包括符号类型和可视性的详细信息以及定义符号的位置。