ReSharper 2024.2 最新变化

ReSharper 2024.2 引入了对 .NET 9 Preview SDK 的支持,包括一组初始的 C# 13 功能,例如 ref struct 接口实现、新的 \e 转义序列和 params 修饰符重构。C++ 支持现已包含 C++23 功能、工具提示中的类型布局信息以及改进的 Unreal Engine 项目支持。此版本还包含第一阶段的简体中文、韩语和日语本地化,提高性能的异步输入,以及带有改进的语言模型、编辑器内代码建议和新的 Explain with AI(使用 AI 解释)等功能的 AI Assistant 增强。

下载

提供 30 天免费试用

.NET 9 预览 SDK 支持

ReSharper 2024.2 搭载了对 .NET 9 Preview SDK 的支持,包括对新的转义字符、params 修饰符重构和 ref struct 接口等 C# 13 功能的初步支持。

C# 支持

在最新版本中,ReSharper 加深了对 C# 12 功能的支持,包括主构造函数、增强的集合表达式以及改进的用于数组创建和集合类型转换的上下文操作。此外,ReSharper 2024.2 引入了对 C# 13 的初步支持,包括 ref struct 接口实现、新的 \e 转义序列和 params 修饰符重构。

本次更新还带来了:

  • 增强的结构体类型相等分析。
  • 用于减少分支结构中的重复的 Extract common code(提取通用代码)检查。
  • ToString() 格式说明符代码补全中的区域性预览。
  • 使用显式类型注解替换脆弱的 C 样式转换的转换表达式分析。

查看这篇博文,深入了解 ReSharper 和 Rider 2024.2 中引入的 C# 支持的最新更新。

C++ 支持

C++ 支持的显著增强包括:

  • 对额外 C++23 功能的支持,包括多维下标运算符、#elifdef#elifndef 预处理程序指令以及 [[assume]] 特性。
  • 工具提示和快速文档弹出窗口现在提供有关类和类字段的类型布局的详细信息,包括大小、对齐、偏移和填充。
  • 在 Unreal Engine 项目中,ReSharper 可以识别结构体特征,确保结构体具有所需方法,并在缺失时快速生成。新检查可以检测对基类方法的缺失调用。
  • Rename(重命名)重构添加了在重命名文件时重命名相关文件和类型的新选项。
  • 代码分析改进包括对 Clang-Tidy 18 的更新以及对 IWYU 指令的支持。

详细了解 C++ 更新:ReSharper C++ 2024.2 最新变化

本地化

ReSharper 2024.2 拉开了简体中文、韩语和日语本地化第一阶段的序幕!您将获得部分本地化的 UI、代码检查、工具窗口和通知。要本地化 ReSharper,请转到 ReSharper Options | Environment | General | Localization | Interface language(选项 | 环境 | 常规 | 本地化 | 界面语言),然后从下拉列表选择所需选项。

或者,您也可以通过 Extension Manager(扩展程序管理器)安装本地化插件。您可以在这里找到完整说明。

性能

已启用异步输入

异步输入旨在使 ReSharper 在 Visual Studio 进程外运行,这是提升 ReSharper 性能的持续工作的一部分。ReSharper 2024.2 是第一个体现这一重要更改的产品版本。我们的内部测试表明,启用异步输入可以显著改善输入体验流畅度。我们期待通过问题跟踪器了解您的反馈。

AI Assistant

更新的模型和上下文收集

我们已经根据任务从较旧的 GPT 3.5 和 GPT 4 模型升级到 GPT-4o 和 Google Bison。此外,我们的 AI 补全和 AI 聊天的上下文收集也已更新,通过这个新模型提供更相关的结果。

Ask AI

有新问题要问 AI 时,您不再需要打开 AI 聊天。调用 Ask AI 并直接提问即可。

编辑器内代码建议和生成

现在,点击一下(或按 Alt+Enter),JetBrains AI 会提示您可以在哪里生成 XML 文档或实现空方法。因此,无需在操作列表中手动搜索这些选项。

此外,AI 不会将您重定向到聊天,而是直接在编辑器中提供回答。您可以根据需要轻松查看和重新生成,或者提供额外详细信息以获得更好的结果。

AI 代码补全中的改进 UI/UX

我们增强了 AI 建议的呈现,使 ReSharper 的 AI 多行补全建议与其他元素更易区分。您还可以按 Shift+Tab 重新生成结果。

Rename(重命名)和 Extract Method(提取方法)中的 AI 命名建议

为变量和方法命名可能具有挑战性,特别是在具有大量类似命名符号的大型解决方案中。现在,重命名方法时,AI 会建议最合适的名称。

用于调试和 DPA 的 Explain with AI(使用 AI 解释)

现在,您可以在不离开当前上下文的情况下让 AI 解释调试会话期间遇到的异常。点击异常旁边的按钮即可在聊天中获得解释。

AI Assistant 还可以解释 Dynamic Program Analysis (DPA) 识别的内存分配和数据库相关问题。在 DPA 发现问题后,您可以点击 Explain with AI(使用 AI 解释)按钮:能够感知代码的 AI 可以分析问题的上下文、提供解释,并建议可能的修正。目前,您只能对内存和数据库问题执行此操作。

dotMemory

dotUltimate

改进的实例搜索

我们在 Instances(实例)视图中添加了新的筛选选项:

  • 按字符串值搜索:在筛选器字段中输入任意字符串值,dotMemory 将高亮显示匹配的字符串。这有助于根据内容查找特定字符串实例。
  • 字符串值的正则表达式支持:使用正则表达式进行更高级的搜索。例如,^nAsso.{5,}ID$nAssociatedObjectID.nAssociatedObjectID 一致。
  • 按对象地址搜索:您还可以通过内存地址搜索对象实例。这适用于直接跟踪特定对象。

这里详细了解 dotMemory 分析器改进。

dotTrace

dotUltimate

性能分析工具的最新更新包括:

  • 更快的 Timeline(时间线)快照处理速度带来更好的性能。
  • 所有平台上的 dotTrace 查看器中都具有新的渲染引擎。
  • macOS 和 Linux 的独立版本新增了 Options(选项)窗口。
  • 修正了 Windows 上 Timeline(时间线)快照中缺少的内核事件。
  • 各种小改进和 bug 修正。

这里详细了解 dotTrace 分析器改进。

反编译器

常规增强

  • lambda 形参:我们引入了对使用可选和形参数组形参反编译 lambda 的支持,有助于增强反编译代码的可读性和准确性。
  • lambda 上的特性:工具现在提供了改进的 lambda 表达式特性处理,可以确保所有相关元数据都准确反映在反编译的输出中。
  • 受保护程序集:我们引入了指定是否反编译受保护程序集的功能,从而提供更全面的代码探索。

构建配置检测

Assembly Explorer(程序集资源管理器)工具窗口现在可以检测并显示程序集的构建配置,有助于您更清楚地了解程序集的编译上下文。

外部源处理

  • 带有 SrcSrv 和 SourceLink 的 PDB:反编译器现在支持从包含 SrcSrv 和 SourceLink 的 PDB 文件导航到源。
  • 预处理程序指令:反编译器现在可以正确识别来自目标框架或相关程序集的可移植 PDB 的预处理程序指令(如 NET6_0_OR_GREATER),确保准确的代码表示。
  • Open in Browser(在浏览器中打开)操作:您现在可以导航到类型仓库中的源代码或者 NuGet 软件包或程序集的仓库。