GoLand 最新变化

GoLand 2021.2 引入了新的 Go 模块功能、新的格式设置选项以及对 Go 1.17 功能的支持。 我们添加了新的快速修复,包括帮助您正确使用新的 //go:build 语法的修正。

版本控制已经更新,改进包括使用 GPG 密钥签署提交的功能。 对于 Web 开发者,我们增加了保存代码时在浏览器中自动重新加载页面的功能,并且为 MongoDB 字段和运算符提供了补全。

您是否想通过更具互动性的方法了解 GoLand 的新功能? 在 Welcome 界面上完成 What's New in GoLand 2021.2 教程。 您还可以找到我们的新 Onboarding Tour。 它可以帮助刚接触 GoLand 的人快速上手。

Go 模块

控制 GoLand 在 go.mod 文件中如何加载更改的设置

手动加载 go.mod 更改

在 GoLand 2021.2 中,您可以在编辑 go.mod 时控制 IDE 如何调用 go list,也可以手动加载 go.mod 文件更改。

转到 Settings | Build, Execution, Deployment | Build Tools,然后选择 External changes 选项。 当您在 IDE 中编辑文件时,GoLand 将自动停止调用 go list

按专用图标手动加载 go.mod 中的更改

您将看到 Load Go modules Changes 图标,可在完成编辑后点击该图标以手动加载更改。

如果您取消选中 Reload project after changes in the build scripts 复选框,您将在所有类型的更改(包括外部和内部更改)上看到 Load Go modules Changes 图标。

使用快速修复更改 Go 版本

对不同 Go 版本的更好支持

如果您使用的功能来自比 go.mod 文件指定版本更新的 Go 版本,GoLand 将显示错误。 对于数字文字和 //go:embed 语句,可以使用快速修复更改 go.mod 中的 Go 版本。

重命名了 Welcome 屏幕上的项目选项

Go 模块的 Go

Welcome 屏幕上的 Go 选项现在是 Go 模块项目的默认选项。 我们还将基于 GOPATH 的项目重命名为 Go (GOPATH)。

下载未使用的依赖项

处理未使用的依赖项

replace 指令中未使用的依赖项现在以灰色高亮显示。 这有助于将其与错误区分。 把鼠标悬停在其中一条灰线上,即可看到“Unused dependency”消息。

如果需要下载未使用的模块,按 Alt+Enter 并选择 Download all modules to the module cache 选项。 您也可以下载单个模块。

格式化程序

在 Settings 中启用 Run gofmt on code reformat 选项

我们在这一版本引入了 Run gofmt on code reformat 选项。 这是使 gofmt 在 GoLand 中更容易被发现的第一步,GoLand 具有自己的格式化程序。

选中此选项后,您可以使用快捷键 Ctrl+Alt+L 调用两个格式化程序,gofmt 将在 GoLand 的格式化程序之后运行。

此选项默认启用,可在 Settings | Editor | Code Style | Go 中切换。

更多快速修复

将 go-build 行移动到文件顶部

新的 //go:build 约束格式化支持

GoLand 新增多项快速修复,可帮助您正确使用旧的 // +build 约束和新的 //go:build 语法。

第一个快速修复将根据新语法的要求把 //go:build 行移动到文件顶部。

由于在 Go 1.16 中,您既可以使用旧语法也可以同时使用两种语法,因此除了生成 //go:build 行,还有一项快速修复可以生成 // +build 行。

一键启用 cgo 支持

一键启用 cgo 支持

如果您导入了“C”软件包,但忘记在项目设置中启用 cgo 支持,GoLand 将显示带有 Enable cgo support 快速修复的横幅。

还有 Navigate to cgo import 选项,可将光标置于软件包名称的开头。 这可以帮助您在大项目中找到 import 语句。

调试器

在调试期间使用预览模式

Preview 模式现在也可用于应用程序调试。 允许您在一个标签页中连续打开文件,防止在不同标签页中打开多个文件导致编辑器混乱。

要在调试期间启用 Preview 模式,请转到 Settings | Editor | General | Editor Tabs 勾选 Enable preview tab 复选框。

Go 1.17

将切片转换为数组指针

在 Go 1.17 中,可以将切片转换为数组指针。 GoLand 不会把这些转换标记为错误。 要试用 Go 1.17 功能,请将 Settings | Go 中的 GOROOT 更改为“Go 1.17”。

快速导航

导航到 internal 文件夹所含接口的实现

从此版本开始,您可以导航到 internal 文件夹所含接口的实现。 点击装订区域,跳转到实现。 您也可以从接口的实现跳到接口的定义。

VCS 更新

在 GoLand 中设置 GPG 签名

GPG 签名

GoLand 2021.2 允许您使用 GPG 密钥签署提交以对其提供保护。 此功能可以通过 Settings | Version Control | Git 启用。

If this is your first time using a GPG key, you’ll first need to configure it. 要使用现有的预配置 GPG 密钥,您可以从下拉菜单列表中进行选择。

在提交前检查中设置选项

提交前检查中的新选项

您现在可以在提交更改之前 Run testsAnalyze code。 转到 Settings | Version Control | Commit | Before commit 或点击 Commit 视图中的齿轮图标。

请注意,Run tests 选项仅在勾选 Settings | Version Control | CommitUse non-modal commit interface 框后可用。

在本地历史菜单中使用搜索字段

本地历史菜单中的新搜索字段

我们在 Local History 菜单中添加了一个新的搜索字段,可独立于版本控制跟踪更改。 它将帮助您在 Local History 修订中快速找到需要的文本。 要开始试用,请右键点击文件并转到 Local History | Show History

请注意,Local History 不应用作 VCS 的替代品。 我们建议将 VCS 设为您跟踪更改的默认选择,并将 Local History 作为不得已的最后手段。

存储未提交更改的节点现更名为 Changes

以 Changes 取代 Default Changelists

我们为存储所有未提交更改的节点提供了一个新名称。 过去其名为 Default Changelist,现已更名为 Changes。 这一更新将在所有新项目中默认可用。 此外,Git 操作将不再触发 changelists 的自动创建。

UI 改进

GoLand 中附加项目的视图

附加项目的更好视图

我们更改了附加项目在 Project 视图中的表示方式。 它们过去表示为现有项目的子目录。 附加项目现在作为单独的目录在 Project 视图中显示。

新的 Advanced Settings 节点和导航箭头

Advanced Settings 和导航箭头

我们在 Settings 中新增了 Advanced Settings 节点。 它包含额外的配置选项,例如,允许您为 Distraction-free 模式配置左边距。

Settings 中还有新的导航选项。 您现在可以使用窗口右上角的箭头在不同部分之间导航。

GoLand 的更新通知

JetBrains Toolbox App 的更新通知

GoLand 会在有新版本时发出通知,并为您提供直接从 IDE 更新到新版本的选项。 要使用此功能,您需要 JetBrains Toolbox App 1.20.8804 或更高版本。

在设置中更改光标形状

新的终端选项

您现在可以转到 Settings | Tools | Terminal 将内置终端中的光标形状更改为下划线或垂直。

Terminal 设置也有新的变化。 我们现在支持 Use Option as Meta key 设置。 Meta 键与另一个键同时按下时,Meta 键将暂时修改另一个键的正常操作。 如果您经常使用终端,建议使用 Meta 键。

更改项目图标

新的 Change 项目图标窗口

我们简化了对话框,允许您在 Welcome 屏幕上的项目列表中自定义项目图标。 要上传自定义图标,只需右键点击项目并从上下文菜单中选择 Choose project icon

Web 开发

保存代码时在浏览器中更新的页面

保存时在浏览器中重新加载页面

当您编辑和保存 HTML、CSS 和 JavaScript 文件时,GoLand 现已能够更新浏览器中的页面。

默认情况下,保存时重新加载页面处于开启状态。 您可以在 Settings | Build, Execution, Deployment | Debugger | Built-in Server 中切换。

Renaming react hook

React useState hook 的 Rename 重构

Refactoring 现在适用于 React hook 中的 useState 值和函数。 只需将文本光标置于状态值上并使用 Shift+F6 键调用 Rename 重构,或转到右键点击上下文菜单中的 Refactor | Rename

GoLand 添加缺失的 require 语句

require() 自动导入

GoLand 可以在您补全 ES6 符号时添加缺失的 import 语句,现在,它还可以对 CommonJS 模块实现相同功能 – 支持在 Code completion 时插入 require() 导入。

GoLand 为私有 npm 软件包提供补全建议

私有 npm 软件包代码补全

Code completion 现在适用于私有 npm 软件包。 GoLand 将让您可以浏览有关软件包最新版本的信息,与检查公共软件包一样。

在 Vue 框架中使用 web-types

对 web-types 的通用支持

我们正在引入新版本的 web-types,这是一项用于记录各种 Web 框架的开源标准。 web-types 的初始版本仅关注 Vue.js 支持。

我们希望构建一个新架构,使其更容易支持新的 JavaScript 框架并扩展对现有框架的支持。 这篇博文和来自 WebStorm 团队的在线讲座将帮助您了解如何使用 web-types。

处理数据库

在 MongoDB 控制台中执行的代码补全

Code completion 现在可以在 MongoDB 控制台中用于字段、嵌套字段和聚合表达式中的字段。 它也适用于查询和投影运算符、更新运算符和聚合阶段。

其他更改

为保存时的操作配置设置

保存时的操作

我们已经在 Settings | Tools | Actions on Save 中收集了所有可能的保存时的操作。您可以勾选待启用操作旁的复选框进行配置。

您还可以为任何操作进行更精确地配置设置。 将鼠标悬停在其上,点击配置链接,然后在出现的相关设置页面上微调操作。

删除缓存和日志

自动清理缓存和日志

GoLand 将自动清理距上次更新已超过 180 天的所有缓存和日志目录。 此过程不会影响系统设置和插件目录。

您可以使用 Help | Delete Leftover IDE Directories… 操作手动清理日志和缓存。

在 GoLand 中设置语法检查

Go 文件中的智能拼写和语法检查

智能拼写和语法检查在 Go 文件中默认启用。 这些检查由 IDE 捆绑的 Grazie 插件提供。

要调整设置,请转到 Settings | Editor | Natural Languages | Grammar

GoLand 的中文用户界面

中文、日语和韩语的 UI

GoLand 现已提供完全本地化的中文韩语日语 UI。 本地化以非捆绑式语言包插件提供,可以轻松安装到您的 GoLand

Code With Me

GoLand 显示在 Code With Me 会话期间向您的同事提供了哪些补全建议

您现在可以跟踪 GoLand 在 Code With Me 会话期间向您的同事提供了哪些 Code completion 建议。 要使用此功能,您需要处于 Following 模式。