ReSharper Ultimate 2019.3’ 最新变化

ReSharper Ultimate 2019.3 引入了全新的 Localization Manager 和类型名称提示,并对 C# 8、C++ 20 和 Unreal Engine 提供了更好的支持。 增强了导航、代码样式和单元测试,适用于 ReSharper 和 dotTrace 的 Command Line Tools 现在可以在 Linux 和 macOS 上运行。

下载

可免费试用 30 天

Localization Manager

Localization Manager

全新的 Localization Manager 可以帮助您高效地处理解决方案中大量的 .resx 文件。 它在一个网格中显示了 .resx 文件中的所有内容,所以您可以查看应用程序或网站本地化的当前状态并快速地找到任何文化中缺失的任何资源值。

您可以:

  • 添加、编辑、重命名、搜索、内联、移动和安全地删除任何本地化的资源。
  • 查找缺失本地化值的资源。
  • 隐藏当下不需要的任何区域设置。
  • 创建缺失的文化 .resx 文件。
  • 查看显示单元格问题的详细描述的工具提示。

ReSharper | Windows 下或 Solution Explorer 的上下文菜单中找到 Localization Manager。

要了解更多信息,请参阅 Localization Manager 使本地化更简单

更好的 C# 8 支持

更好的 C# 8 支持

新的 ReSharper 版本可以更好地处理 C# 8。 现在包括:

  • 更好地理解可空引用类型,包括对 notnull 约束的支持。
  • 目标类型 switch 表达式。
  • 对默认接口方法的早期支持。
  • 新提示“Local function can be static”以及随附的快速修复。
  • 新快速修复,可以在解决方案的文件、一个项目或所有项目中启用 nullable 注释和警告。
  • 新快速修复,可以将 EnumeratorCancellation 特性添加到 async 迭代器的 CancellationToken 参数中。

而且,代码检查“Type or type member is never used”已拆分为两个单独的选项,一个用于类型(“Type is never used”),另一个用于类型成员(“Type member is never used”)。

代码生成

代码生成

Generate 操作可以更好地理解 C# 8 并通过以下途径帮助您学习:

  • 新快速修复 Add missing arms,用于详细地检查枚举值。
  • 新快速修复和上下文操作,用于在 switch 表达式中生成类型模式。
  • 生成相等/关系成员/比较时会考虑 Nullability

另外,还有一个新选项,可以在为 C# 和 VB.NET 生成相等成员或相等比较时将 System.HashCode 用于实现 GetHashCode,这样会使代码更加整洁。

代码格式化

代码样式

在此版本中,我们还提供了另外一个期待已久的请求。 C# 命名设置现在支持从 EditorConfig 读取/导出到 <0>EditorConfig

除了这项重大更改外,还有一些小的更改,让您能够更好地控制代码样式:

  • 对于仅在初始值设定项表达式类型明显时想要使用 var(而不是显式类型)的用户,ReSharper 现在可以检测更多“明显”用例。 还有一个“兼容性”模式,用于匹配 Roslyn 行为。
  • 有一个新的代码样式选项,与 StyleCop 和 Roslyn 兼容,用于添加括号,以便仅针对一组运算符(嵌套同一组其他运算符)阐明过程。 例如,如果您不记得 && 还是 || 优先,此选项将帮助您利用括号阐明。
  • Comment Code 现在默认将缩进添加到注释。 “Place comments at first column when commenting out code”有一个新设置,您可以将它关闭。
  • 设置缩进的选项页面现在会在 Autodetect indent size and value 设置为 ON 时显示适当的通知。
  • 还有一个通知工具提示,用于解释 C# 格式化程序选项页面上的 Configure formattingAutodetect formatting 功能。
跨平台 ReSharper Command Line Tools

跨平台 ReSharper Command Line Tools

人们通常会问是否可以在托管在 Linux 上的 CI 上运行 ReSharper Command Line Tools。 很长时间以来,我们的回答都是“不行”。不过,我们已经努力移除所有 Windows 特定的部分,这样我们就能够将所有内容移动到适用于 Linux 和 macOS 的 Mono 运行时。 别担心,它在 Windows 上仍然使用 .NET 框架。

今天,我们很高兴地宣布 ReSharper Command Line Tools 已登陆 Linux 和 macOS! 在非 Windows 操作系统上,您可以放心地使用强大的 ReSharper 代码分析。

类型名称提示

类型名称提示

我们希望您喜欢 ReSharper 2019.1 中引入的参数名称和代码注解提示。 在此版本中,我们的工作向前推进一步,现在可以向您提供类型名称提示。 它们可用于:

  • lambda 的参数。
  • 所有 var 用例,包括模式匹配和元组析构。
  • LINQ 语句中的范围变量
  • 方法调用链中的最后一行。
导航和查找用例

导航和查找用例

好多人有时都想知道我们的代码中是否使用了特定的引用。 长久以来,可以在引用上运行“Find dependent code”操作来查找引用中出现类型或类型成员的所有位置。 不过,始终都有限制。

从 2019.3 版本开始,我们消除了其中几个限制:

  • Find dependent code 现在适用于 NuGet 引用,并且可对整个解决方案(而不是仅仅一个项目)运行!
  • Consuming API 扩展了“Navigate to”操作,如果您想要列出在函数中接收特定类型对象的所有方法,这些操作会对您有所帮助。
  • Find dependent codeFind results 窗口添加了新的筛选器。
  • 您现在可以导航到具有源符号包的 NuGet 包的外部源。
Unit Testing 更新

Unit Testing 更新

Unit Testing 工具窗口已经相当成熟,可以满足我们的大多数需求。 不过,我们认为还可以添加更多的方法,让您能够自定义单元测试列表的视图,于是我们就这么做了。

  • 使用 Unit Test ExplorerUnit Test Session 工具窗口中新增的高级 Group by 功能创建自定义分组。 使用添加的 Duration 元素,您现在可以根据执行测试所需的时间对单元测试进行分组。
  • 如果您有多个单元测试(如今通常会这样)并且不想看到其中一些,可以在 Unit Test Session 工具窗口中按目标框架进行筛选。
标识符高亮显示更新

标识符高亮显示更新

标识符高亮显示已完全重新设计。 我们还添加了更多颜色设置,以便提高代码高亮显示的精度(这些设置位于 Tools | Options | Fonts and Colors 下)。 新的颜色设置包括:

  • 适用于所有语言的实体颜色的通用部分。
  • 适用于 C# 颜色的专有设置。
  • 适用于不同语言的结构的新颜色设置。
其他功能

其他功能

  • 新的 NUnit inspections 涵盖组合单元测试和参数化单元测试的各个参数。
  • Parameter Info 弹出窗口现在可用于元组。
  • Xamarin 支持现在有多个重要修复,如 x:DataTypeClass attribute 支持。
  • 删除新行和在新行前退格的输入辅助现在会留出空格来分隔令牌,或者符合格式化规则要求。
C++20 支持

C++20 支持

C++20 功能齐全,明年将获官方签署,为 C++ 开发者提供一系列期待已久的功能。 ReSharper C++ 2019.3 已支持其中的许多功能,还通过其他分析和洞察增强了这些功能。

首先,ReSharper C++ 现在能够理解聚合可以从带括号的值列表初始化,有时需要使用函数模板执行其他 ADL

ReSharper C++ 解析器不仅支持概念,还支持 Rename 重构和 Find Usages。 更出色的代码分析可以为您显示概念相关错误的更多详细信息。 例如,如果因为未满足概念要求而导致重载解析失败,您会在工具提示中看到所有详细信息。 而且,在 ReSharper 2019.3 中,我们还为工具提示添加了颜色,可以显示重载解析失败的详细信息。

我们已经发布了一系列 C++20 和 ReSharper C++ 博文,您可以从中了解新语言功能及其在 ReSharper C++ 中的采用情况。

Unreal Engine 4 支持

Unreal Engine 4 支持

ReSharper C++ 检测到您正在开发 Unreal Engine 项目时,它会调整行为来适合 UE4。

UCLASSes 的“新”后缀模板扩展为合适的出厂函数调用(将会在垃圾回收器中注册创建的对象)。 现在可以使用具有相应名称的实时模板来帮助您快速生成 USTRUCT/UCLASS/UENUM/UENUMCLASS

Unreal Engine 的智能指针(TSharedPtr、TSharedRef、TWeakPtr、TUniquePtr)现在由 ReSharper C++ 处理,与 std::shared_ptr/std::unique_ptr 类似。 这表明一些功能(如 Parameter Info、代码分析和后缀代码补全)适用于智能指针。

最后,还对 UE4 项目进行了一些性能改进。 例如,我们在 UE4 编辑器中修复了“Refresh Visual Studio Project”之后的挂起。

参见 ReSharper C++ 最新变化

macOS 和 Linux 上的命令行分析器

macOS 和 Linux 上的命令行分析器 dotUltimate

命令行分析器终于登陆 macOS 和 Linux。 dotTrace.sh 与它的 Windows 对应项拥有相同的功能,并以 .tar.gz 存档和 NuGet 包的形式分发。

查看 dotTrace 2019.3 最新变化

dotCover 改进 dotUltimate

dotCover 2019.3 获得了几项改进:

  • 在所有操作系统上支持 Unity 2018.3 及更高版本。 要执行 Unity 测试覆盖率分析,您必须使用 JetBrains Rider
  • 支持 Microsoft Fakes。
  • 可以根据 Rider、Visual Studio 中的嵌套命名空间对覆盖率结果分组,并以 dotCover 控制台工具生成的报告形式提供结果。

查看 dotCover 2019.3 最新变化

下载

可免费试用 30 天