百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

还在用 2019.3 就 Out 了:GoLand 2020.1 版本正式发布

bigegpt 2024-10-29 12:59 5 浏览

北京时间 2020 年 4 月 10 日凌晨,Jetbrains 宣布正式发布 GoLand 2020.1 版本。

该版本主要的变化有:

引入了对 Go 模块支持的各种升级以及代码编辑功能,这些功能几乎不需要用户交互,也不需要扩展的代码补全系列。

除此之外,还添加了新的代码检查、快速修复和其他改进,例如新的 LightEdit 模式(可让您在文本编辑器中打开文件,而无需创建或加载项目)、智能拼写和语法检查以及用于 Web 开发和数据库处理的新功能。

Go 语言中文网在 2020.1 还未正式发布之前,就发过关于该版本特性的文章,现在 2020.1 正式发布了,相关功能特性稳定了,我们再次介绍下相关新特性。

Go 模块改进

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 操作在格式化规则要求时会在冒号后面添加空格。它还会在组合文字声明中语句的末尾添加逗号。

现在,使用 map 时,代码补全会在您补全键类型后将光标移到右中括号后面。

对于函数的返回类型,补全功能将为局部变量和零值提供适合相应返回值类型的建议。

智能代码补全(??Space 或 Ctrl+Shift+Space)

智能代码补全会建议一个指向结构初始值设定项的指针。

它还会建议在断言和类型 switch 用例中首先使用兼容类型。

在类型断言中,它提供已赋值变量的类型。

最后,它提供了表达式中可能指针的建议列表。

基本代码补全(?空格或 Ctrl+空格)

为注释添加了基本代码补全,这将使编写文档更加轻松!它可为当前包声明建议名称,并为函数和方法建议参数名称。除此之外,基本代码补全还可以建议文字和转换。

代码编辑

编写多值返回函数的签名时,GoLand 2020.1 会在逗号后面的返回类型周围添加括号。当您在字符串文字中粘贴一些文本时,IDE 会转义双引号。

Go 1.14 支持

1)支持重叠接口

Go 1.14 添加了对嵌入重叠接口的支持,我们也添加了此功能!当您使用重叠接口描述类型的不同方面时,GoLand 不会将这些方面的重复方法报告为错误。

2)自动 vendoring 模式

如果模块根包含 vendor 目录,则会在 Go 1.14 中自动启用 vendoring 模式。对于 GoLand 2020.1,我们决定为 Go 1.13 及更早版本实现类似的行为。IDE 会自动将导入解析到 vendor/ 文件夹(如果模块中存在)。

调试器更新

1)分析器标签支持

为了帮助您在调试或核心转储分析过程中更轻松地区分 goroutine,我们为其添加了分析器标签。更多详情请参考:

如何在调试过程中查找 Goroutine。

2)宏支持

现在,可以将宏用作运行或调试应用程序的参数。在 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(macOS 上为 ??B,Windows/Linux 上为 Ctrl+Alt+B)和 Navigate to Declaration 或 Usages(macOS 上为 ?B,Windows/Linux 上为 Ctrl+B)现在会首先显示当前项目中的结果。

此外,默认情况下,Find Usages(Windows/Linux 上为 Alt+F7,macOS 上为 ?F7)操作现在会始终查找接口方法的用法。要像以前一样查找当前方法的用法,请在 Windows/Linux 上使用 Alt+Shift+Ctrl+F7 或在 macOS 上使用 ???F7。

改进 VCS

1)新 Commit 工具窗口

现在,新的 Commit 工具窗口包含 Local Changes 和 Shelf 选项卡。此工具窗口涵盖了与提交有关的所有任务,例如检查差异,选择要提交的文件和块,以及输入提交消息。Commit 是位于屏幕左侧的垂直工具窗口,这样就为整个编辑器留出了显示差异的空间。

2)改进了 Branches 弹出窗口

Branches 弹出窗口在多个方面进行了重新设计:

  • 我们添加了一个显式搜索字段,您可以借助此字段查找现有的远程和本地分支。
  • 现在,您可以使用 Refresh 按钮更新现有的远程分支。
  • 传入(蓝色)和传出(绿色)提交指示器已添加到状态栏。

3)Interactively Rebase from Here 对话框

大幅重新设计了 Interactively Rebase from Here。您可以利用此对话框编辑、组合及移除之前的提交,从而让您的提交历史记录更加清晰易懂。

要调用此对话框,请转到 Git 工具窗口的 Log 选项卡,在要编辑的一系列提交中选择最旧的提交,点击右键,然后选择 Interactively Rebase from Here。

数据库更新

  • 使用 Run configurations 运行脚本文件和代码段。这样,您可以在启动前一次运行多个文件,对它们进行重新排序,添加新文件以及运行其他程序或配置。
  • 现在,您可以在代码编辑器中查看结果。默认情况下,此选项处于禁用状态。要启用此功能,请转到 Settings/Preferences | Database | General | Show output results in the editor。
  • 创建 SSH 隧道的配置,并在许多数据源或项目中使用。
  • 我们添加了以 Excel 格式导出数据的功能。
  • 另外,您也可以在提取程序下拉列表中选择首选数据格式。

Web开发

1)用于 JavaScript 和 TypeScript 的新智能意图和检查

使用新的智能意图和检查 (Alt+Enter) 可在编码时节省时间!例如,您现在可以快速地将现有代码转换为可选链和/或空值合并,该语法已在最新版本的 JavaScript 和 TypeScript 中引入。

2)更有帮助的快速文档

对于 JavaScript 和 TypeScript,Documentation 弹出窗口现在会显示更多有用的信息,包括符号类型和可视性的详细信息以及定义符号的位置。

其他变更

  • JetBrains 的新字体 JetBrains Mono 默认可用。要详细了解该字体,请访问此页面。
  • 默认捆绑了 Grazie,此插件可为您在 IDE 中编写的文本提供智能的拼写和语法检查。
  • 新的 LightEdit 模式允许您在文本编辑器中打开文件,而无需创建或加载项目。要试用此这一功能,您首先需要从 Tools | Create Command-line Launcher 创建命令行启动器,如此处所述(如果您使用的是 Toolbox App,步骤略有不同)。有关如何打开文件、比较/合并文件甚至运行代码检查的详细说明,请参阅此 Web 帮助部分。
  • 我们添加了新的 Zen 模式,它消除了可能的干扰,可帮助您完全专注于代码。本质上,此模式结合了免打扰模式和全屏模式。要启用此模式,请转到 View | Appearance | Enter Zen Mod,或者从 Quick Switch Scheme 弹出窗口中选择 (Ctrl+` | View mode | Enter Zen Mode)。
  • 外部文档现在指向 https://pkg.go.dev 而不是 https://godoc.org。
  • 我们恢复了默认配色方案,但采用新名称 Classic Light。

结语

新版本可以免费试用 30 天。新版本下载地址:https://www.jetbrains.com/zh-cn/go/download/。该下载页面支持通过微信和支付宝支付。

相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...