JetBrains近日发布了Go语言开发工具GoLand 2021.1
支持通过 Docker、SSH 和 WSL 2 远程构建和运行程序;使用 Go 1.16 新支持的功能(包括 //go:embed),从 JSON 快速生成代码,并通过新的快速修复轻松处理错误。
GoLand 不仅是一个 Go IDE – 除了处理 Go 代码的功能,您还将获得 JavaScript、TypeScript 和数据库的新功能。
码农老杨第一时间安装体验,启动画面风格大变
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
GoLand 最新变化
运行目标
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
在 GoLand 2021.1 中,您可以在计算机上进行开发,在本地使用所有源代码,并以远程计算机为目标运行代码。 目前,IDE 支持 Docker、SSH 和 WSL 2(适用于 Linux 的 Windows 子系统)。
在设置中,选择 Run | Manage Targets…,点击 Add 图标 ( ),然后选择要处理的目标。 完成配置后,需要从 Run | Edit Configurations… 中指定 Run Configuration 并选择要处理的目标。
Go 1.16
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
//go:embed 支持
从 Go 1.16 开始,您可以在构建时将文件和目录嵌入 Go 二进制文件。
嵌入适用的几类变量:string、[]byte 和 embed.FS。 您需要在软件包的顶层声明这些变量。 最后,您需要添加 //go:embed 指令使嵌入生效。
GoLand 提供了代码高亮显示、从 embed 指令内的引用到项目中的文件和文件夹的导航、Rename 重构、Find Usages、代码补全和一些代码检查。 例如,如果您试图将文件嵌入类型错误的变量,GoLand 会发出通知。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
检测 (t/b).Fatal 的错误用法
GoLand 会警告您在测试期间创建的 goroutine 中对 testing.T 方法 Fatal 的无效调用。
专用的快速修复将重写调用 t.Fatal(或类似方法)的代码,使其使用 t.Error 表示测试失败,并使用 return 语句提前退出 goroutine。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
检测 asn1.Unmarshal 的错误用法
在 Go 1.16 中,go vet 可检测 asn1.Unmarshal 的错误用法,确保字节切片解组的值不为 nil。
GoLand 2021.1 提供了类似的检查以及用于解决这个问题的快速修复。
使用 JSON
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
只需将 JSON 数据复制粘贴到编辑器中,即可立即从 JSON 生成带有字段和标记的结构。
如果要在生成结构之前调整 JSON,应按 Alt Enter 调用 Generate type from JSON 意图。 GoLand 将使用复制的 JSON 打开 Generate Go type from the JSON 窗口。 您可以根据需要在窗口中对其进行调整,然后按 Generate 按钮生成结构。 当然,也可以将 JSON 手动粘贴到窗口。
此外,还可以在现有的空结构内转换 JSON。 为此,只需点击此空结构,然后按 Alt Enter 或使用 Generate 菜单调用 Generate struct fields from JSON 意图操作。
除此之外,如果您在 Generate Go type from JSON 窗口中使用了无效的 JSON 代码,GoLand 也将发出通知。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
现在,可以更轻松地为结构中的所有导出字段创建 JSON 和 XML 标记。
使用 Alt Enter 在结构或结构中的任何字段上调用 Add key to tags 时,GoLand 会使用字段名称将标记添加到结构中的所有字段。 再次在任何键上按 Alt Enter 并选择 Change field name style in tags 即可更改所有标记的字段名称样式。 支持的样式为 fieldName、FieldName、field-name 和 field_name。
您可以使用 Update key value in tags 意图操作一次更新所有标记值。 在结构中的任意标记值上按 Alt Enter,GoLand 将在每个字段的标记值的末尾添加文本光标。
此外,IDE 还为 JSON、XML 和 ASN.1 代码提供了 SDK 所提供标记值内的常见令牌的补全。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
最后,GoLand 2021.1 支持用于处理结构化数据和日志的以新行分隔的 JSON Lines。 IDE 将识别 .jsonl、.jslines、.ldjson 和 .ndjson 文件类型。
此格式的文件包含多行,每行都是由换行符分隔的 JSON 对象。 行首或行尾不需要逗号,也不需要将文件内容全部括于方括号或大括号中。
轻松处理错误
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
Unhandled Error 代码检查已获得一系列快速修复:
- Handle error 快速修复将调用结果分配给变量并生成 if error not nil 检查。
- Wrap error handling in a closure 快速修复可用于 defer 和 go 语句,生成的代码与 Handle error 类似,但会将所有内容封装在闭包中。
- 我们扩展了 Ignore explicitly 应用范围,涵盖了 defer 和 go 语句。 快速修复将调用结果分配给空白变量,并将所有内容封装在闭包中。
更多快速修复
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
复合文字内部类型不兼容的快速修复
我们扩展了用于解决类型不兼容的快速修复的应用范围。 现在,它还建议实现一个接口并将其转换为复合文字内部的预期类型。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
Create Type 快速修复生成缺失的字段
Create Type 快速修复不仅可以在 GoLand 注意到您使用了尚未定义的类型时创建类型,还可以为您创建字段。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
同时生成所有 getter 和 setter
在庞大的结构中为每个字段生成 get 和 set 方法会相当繁琐。 现在,您可以同时为整个结构生成 getter 和 setter。
在结构中的任意字段名称上按 Alt Enter ,然后从下拉菜单中选择 Generate getter and setters。 GoLand 将打开 Select Fields 窗口,随后您可以为所有字段或所需字段生成 get 和 set 方法。
重构
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
Extract Type 重构
Extract Type 重构可以让您从既有类型中提取类型,或者将匿名结构类型转换为命名类型。 按 Ctrl Alt Shift T 调用。
Go 模块
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
go.mod 文件的 Rename 重构
有时,在对项目进行了充分实验并完成了所有初始工作后,您需要重命名模块。 我们已经将 Rename 重构添加到 go.mod 文件。 它可以让您安全地使用新名称重命名模块,不需要在项目树中通过搜索和替换来替换旧的模块名称。
使用 Shift F6 对模块名称调用 Rename 重构。 GoLand 将打开 Rename 窗口,您可以更改当前名称,选择是否在注释和字符串中更改,以及打开重构的预览。 在 Refactoring Preview 选项卡中,您可以导航到该模块名称的所有用法。 您可以使用撤消快速还原所有使用重构实现的变更。
后缀补全
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
新的 varCheckError 后缀补全
在返回错误的标识符后键入 .varCheckError ,IDE 会自动添加默认变量名,并从函数中返回错误。
格式化程序
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
内置的格式化程序现在能够以 goimports -local 的方式对导入进行分组。
转至 Settings | Editor | Code Style | Go | Imports 并启用导入分组即可使用此支持。 然后,您可以指定应将哪些导入分组到单独的块中。
运行和调试
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
GoLand 2021.1 允许您运行扩展的 sudo 会话。 在第一次运行时,GoLand 会询问您是要保持 sudo 运行还是将其立即终止。 转到 Settings | Appearance & Behavior | System Settings | Process Elevation 可更改您的回答。
请注意,如果启用此选项,您将允许 GoLand 和所有第三方插件访问您的系统。
代码补全
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
我们推出了机器学习辅助补全。 这一变化引入了基于机器学习 (ML) 的早期代码补全,是标准排名机制的替代方案。
在 Settings | Editor | General | Code Completion 中勾选 Mark position changes in the completion popup,在补全列表中用向上/向下箭头图标标记由 ML 补全重新排名的选项。
UI 改进
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
快速访问菜单
先前 IDE 左下角的 Configuration 微件已替换为快速访问菜单。 新菜单将显示在右上角。 按下齿轮图标可切换主题或键盘映射、导航至插件或进入设置。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
在 Windows 上通过“开始”菜单快速访问最近的项目
现在,您可以在 Windows 中右键点击任务栏或开始菜单上的 GoLand 图标访问最近打开的项目。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
更好的工具提示显示
工具提示现在会逐个显示以防止重叠。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
字体变体
您现在可以从 Settings | Editor | Font 面板选择改变字体。
其他变更
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
内置 HTML 预览
新的内置浏览器预览可以帮助您快速预览 HTML 文件。 IDE 中的任何 HTML 文件变更以及链接的 CSS 和 JavaScript 文件的变更都会被立即保存,预览也将即时更新。
要打开预览,请点击编辑器右上角微件中的 GoLand 徽标。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
在分割视图中最大化编辑器选项卡
在分割编辑器中需要更多的空间同时处理多个文件? 双击要处理的选项卡,使其编辑器窗口最大化。 再次双击即可将选项卡恢复到原始大小。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
Makefile Language 插件默认启用
提供 GNU Make 语言支持的 Makefile Language 插件(先前为第三方)现已默认捆绑。 从 GoLand 2021.1 开始,您将获得开箱即用的语法高亮显示、快速文档、目标的 Find Usages 以及 Makefile 的一些导航和代码补全操作!
Code With Me
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
GoLand 现在还捆绑了用于协作开发和结对编程的新 JetBrains 服务 Code With Me。
设置项目所需访问级别并与访客共享链接。 您的同事不需要安装 IDE 即可与您协作。 嵌入式音频和视频通话以及聊天消息将帮助团队讨论代码,共享知识并更有效地合作。
需要更高安全性的企业可以在公司自己的私有网络上安装并安全运行内部部署的 Code With Me。
要详细了解您当前 JetBrains 许可证可用的 Code With Me,请查看定价页面。
Docker
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
改进的 Run/Debug Configurations
我们以多种方式改进了 Run/Debug Configuration 对话框:
- 要添加所有必要的构建选项,请点击 Modify options;要添加运行选项,请点击 Modify。 IDE 现在会验证每个选项以确保其兼容。
- 对于 Docker-compose,我们支持所有现有的选项,包括声明环境变量文件 (.env) 的选项。
- 对于 Dockerfile,您不必记住所有的运行命令,因为代码补全可在 Run Options 字段中运行。
- 对于 Docker 映像,您可以使用代码补全在 Image ID 或 name 字段中输入映像的名称。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
BuildKit 支持
我们增加了对 BuildKit 的实验性支持,可大幅加快项目构建速度。 您可以在 Run/Debug Configurations 中点击 Modify options 并选择 Enable BuildKit (experimental) 激活该选项。
您只需点击阶段名称旁边的锤头图标,IDE 即可使用 BuildKit 构建映像。 如果在 Run/Debug Configurations 中添加了 Run 部分,图标会发生变化。 点击后,您不仅会构建映像,还会运行容器。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
多阶段 Dockerfiles 中的 UI 增强
如果您在 Dockerfile 中使用多个 FROM 语句,每个 FROM 指令都会启动一个新的阶段。 在 GoLand 2021.1 中,您现在可以折叠阶段并在阶段之间发现明显的分隔线。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
取消 Docker 运行
如果您决定停止正在运行的 Dockerfile,可以在 Services 工具窗口中轻松完成停止操作。 选择正在运行的项,调用上下文菜单,然后点击 Stop Deploy。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
Docker 挂载的环境变量和宏
使用绑定挂载时,现在可以更快地输入主机上目录的路径。 补全机制允许您在 Run/Debug Configuration 的 Bind mount 选项中选择宏和环境变量。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
Dockerfiles 中的映像补全
最后,我们还为映像名称添加了补全。
Web 开发变更
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
捆绑的 MDN 文档
MDN 文档现与 GoLand 捆绑。 这将有助于防止 MDN 网站的连接问题,并使编辑器内文档在 HTML、CSS 和 JavaScript 文件中显示得更快。 编辑器内文档也将提供更多信息 – 例如,您将看到有关 JavaScript API 受支持的浏览器版本的详细信息。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
改进了对 Stylelint 的支持
CSS 代码的 Stylelint 检查更加易于操作。 现在,点击几下即可解决这个常见的 linter 的问题。 将鼠标悬停在文件中的问题上或将文本光标放在其上,然后按 Alt Enter,选择 Stylelint: Fix current file。
此外,您现在可以在 Settings | Languages & Frameworks | Style Sheets | Stylelint 的相应字段下指定配置文件的路径。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
CSS 的选择器特异性
使用样式表时,您现在可以查看选择器的特异性 – 只需将鼠标悬停在要查看的选择器上即可。 或者,将焦点放在选择器上,按 Ctrl Q 在 Documentation 弹出窗口中查看这些信息。
处理数据库
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
更好的排序
我们改进了数据排序:
- 新的 ORDER BY 字段的工作原理类似于 WHERE 字段(之前叫做 Filter):输入工作子句将其应用于网格查询。
- 排序默认不“堆叠”。 这意味着点击要用于数据排序的列名后,基于其他列的排序将被清除。 如果您想使用堆叠排序,按住 Alt 键的同时点击列名。
- 如果要在客户端使用排序(GoLand 不会重新运行查询,也不会在当前页面对数据进行排序),应取消选中 Sort via ORDER BY:
- 也可以根据数字主键打开预定义排序的表。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
上下文实时模板
这是我们为从数据库浏览器直接生成简单语句打造的全面解决方案。 常规实时模板涵盖了许多需要快速编写简单查询的情况。 但是我们也明白,有时,当您在数据库浏览器的上下文中已经找到需要的对象,还有一个更好的方法可以使用这个对象得到简单查询。
Select first N rows from a table 看起来像是常规模板(也确实可以这样使用)。 由于这一特定语法不能用于所有数据库,所以模板设置了相应方言。 此模板之所以适用于数据库浏览器,主要是因为特殊表达式 dbObjectName,其用于 $table$ 变量。
![Go语言最强IDE发布新版GoLand2021大量全新特性](http://www.yixao.com/wp-content/themes/exou/themer/assets/images/lazy.png)
授权 UI
我们为修改对象时的授权编辑添加了一个 UI。
您可以使用 Ctrl F6 在数据库浏览器中的用户上调用 Modify user 窗口,该窗口现在具有向对象添加授权的 UI。
这适用于 PostgreSQL、Redshift、Greenplum、MySQL、MariaDB、DB2、SQL Server 和 Sybase。
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/tech/22236.html