Rider 2024.1 提供了一项新功能来监测应用程序的性能和收集关键指标,粘性行可以用来更好地了解您在代码中的位置并更快浏览代码,更新的 New Project(新建项目)对话框将使项目配置更快、更轻松。 此更新通过提供集合可视化器和显示两个断点之间的步进时间来帮助您进行调试。 游戏开发者可以受益于热门 Unity 资源 Odin Inspector 的一组新功能以及对 Unreal Engine 的 Slate UI 框架的支持。
Rider 2024.1 引入了 Monitoring(监测)工具窗口,可让您在运行或调试时监测 .NET 应用程序的性能并在后台收集关键指标。
我们在编辑器中引入了粘性行,旨在简化大文件的处理和新代码库的探索。 滚动时,此功能会将类或方法的开头等关键结构元素固定到编辑器顶部。 这将使作用域始终保持在视野中,您可以点击固定的行快速浏览代码。
检查集合,例如数组、列表、字典和其他可枚举类型,以在调试期间更好地了解程序数据的状态,并识别与数据处理相关的潜在问题。
我们彻底重做了 New Project(新建项目)对话框,使新项目易于配置。 它提供了对 .NET 特定的项目配置和自定义模板参数的全面支持,您现在可以直接从对话框安装目标 SDK 和适当的 MAUI 工作负载。
我们彻底重做了 New Project(新建项目)对话框,希望减少新项目配置过程中的认知负担。 以下是更新的对话框中的变化:
此前,可以整体放大和缩小 IDE,这会同时调整所有 UI 元素的大小。 不过,最初的缩放比例被限制在 100-200% 范围内。 现在,我们添加了将 IDE 比例缩小至 70% 的功能,让您在调整内容的大小时更加灵活。
此版本重做了 Terminal(终端)工具窗口,引入了可视化和功能增强,旨在提高基于终端的任务的便利性和简单性。 此更新改进了工具的可视化效果,也扩展了其功能集。
您可以在 Settings/Preferences | Tools | Terminal | Enable New Terminal(设置/偏好设置 | 工具 | 终端 | 启用新终端)中启用新终端。
有关重做的终端的更多信息,请查看 IntelliJ IDEA 的这篇博文。
现在,您将获得建议,将源代码中的更多代码结构转换为 C# 12 中的集合表达式,例如空数组或 ImmutableArray
声明和初始化。
我们添加了新的 Possible 'System.InvalidOperationException: Collection was modified'(可能的 'System.InvalidOperationException: 集合已被修改')检查,在 foreach
循环内迭代期间修改集合时,它会发出警告,因为此修改可能会导致运行时异常。 此分析了解集合修改后退出循环的情况,这些情况不会触发警告。 检查附带对应快速修复,可以帮助您立即解决此问题。
Generate | Formatting Members(生成 | 设置成员格式)可供生成样板代码来重写 ToString()
方法并为类型返回有意义的字符串。 从 2024.1 版本开始,此功能支持更多类型,例如 ISpanFormattable
、IUtf8SpanFormattable
和 IFormattable
。
[MustDisposeResource]
注解改进:C# 代码分析现在可以确保正确处置异步方法返回的资源(包括 Task<IDisposable>
和 ValueTask<IDisposable>
中包装的资源),帮助您避免意外处置任务本身。 .ConfigureAwait(...)
、.AsTask()
或 .Result
检索的资源。 以下是我们对 Change Signature(更改签名)重构所做的一些改进:
Deconstruct
方法。 您可以添加、移除、重新排列和重命名形参,这些更改将反映在方法声明及其用法中。 List<>
指定类型时,您可以使用代码补全轻松选择所需类型,例如 int
。 System.Collections.Generic.List<System.Int16>
类型,在生成的代码中它将被自动缩短为 List<short>
。 in
和 ref readonly
修饰符以及 record
类型。在此版本中,Make Static(设为 static)重构支持主构造函数形参。 它们位于 Introduce parameters(引入形参)列表中,并具有单独的图标帮助您轻松区分。 此重构也适用于局部函数。
我们正在为解决方案级分析积极完善高资源利用率模式,通过更有效地利用 CPU 并行性显著缩短分析时长。 我们改进了代码分析活动的内存分配分析,最大程度地减少垃圾回收所花费的时间。 优化过程仍在推进,我们欢迎您启用此模式并提供体验反馈。
protobuf-net
库的支持 代码分析现在提供对 protobuf-net
库中 ProtoContract
特性和 ImplicitFields
枚举的支持。 这两项都可以用来标记隐式用于序列化的成员。 因此,此类成员不再使用 unused members(未使用的成员)警告进行标记。
现在,可以通过针对缺失成员的新快速修复、代码补全和 Generate(生成)重构在对象表达式中生成重写。
您现在还可以在搜索联合体用法时查看联合体 case。 这使类型实例的创建和模式匹配方式更容易了解。
我们添加了一个 new
后缀模板,用于为类和接口创建记录类型和对象表达式的实例。
为 F# 实现了粘性行支持,帮助在处理较长的类型和函数时更便捷地查看上下文。
F# 支持还包括其他新的快速修复和上下文操作。 您可以在 GitHub 上的完整版本说明中了解所有更改。
继 ReSharper 之后,Rider 也获得了升级的拼写和语法检查器。 新的拼写检查器支持 20 多种语言,能够在 Rider 支持的编程语言(C#、C++、VB.NET)、标记语言(HTML、XML、XAML)和注释中捕获自然语言错误。
Rider 2024.1 中的集合可视化器提供集合(数组、列表、字典和其他可枚举类型)的图形表示,可用于展开和收起元素、查看各个值,以及轻松浏览数据结构。 这有助于在调试期间了解程序数据的状态以及诊断与收集、操作或数据处理相关的问题。
调试时,能够评估调试器在两个断点之间执行代码所需的时间非常有价值。 如果您发现步进时间过长,则可能表明代码存在性能问题。 使用 Rider 调试应用程序时,您将看到一个内联提示,显示上一个断点与当前断点之间经过的时间。
从此更新开始,如果存在多条语句,Rider 将允许您在单行代码上设置多个断点。 您可以使用相关的内联提示或快捷键 (Ctrl + F8) 设置断点。
在 2024.1 版本中,我们引入了 Skip to cursor(跳到光标)选项,使其与 IntelliJ IDEA 中的运作方式保持一致。 新的 Run to Cursor(运行到光标)嵌入选项提供了在调试时快速导航到特定代码行的方式。 程序挂起后,您可以将鼠标悬停在您希望继续执行的代码行上。 然后,您可以利用 Run to Cursor(运行到光标)弹出窗口执行代码,直至到达光标所在的行。
热重载现在可用于运行和调试 Blazor WebAssembly (WASM) 应用程序。 热重载适用于 .cs
、.razor
和 .css
文件(包括带作用域的 .razor.css
文件)。
该功能默认启用。 您可以前往 Settings/Preferences | Build, Execution, Deployment | Hot Reload(设置/偏好设置 | 构建、执行、部署 | 热重载)进行配置。
调试期间,进程转储至关重要,因为它们允许您在发生错误时检查程序状态,即使问题不容易重现。 此前,Rider 只能处理 C++ 核心转储。 现在,IDE 还允许您为 .NET 进程导入转储。
要导入进程转储,请转到 Run | Debug Core Dump(运行 | 调试核心转储)或将转储文件拖放到编辑器中。
我们在单元测试失败、构建失败或调试会话期间抛出的异常或错误消息旁添加了 Explain with AI(使用 AI 解释)按钮。
重命名局部变量时,您将在代码补全弹出窗口中获得 AI 赋能的名称建议。
请注意,在版本 2024.1 中,AI Assistant 已解绑,现在作为独立插件提供。 这一改动是为了在使用 AI 赋能的技术方面提供更多的决策灵活度,让您能够在工作环境中更好地控制偏好和要求。 AI Assistant 仍然需要有效的 JetBrains AI 订阅。
C++ 支持的显著增强包括:
Rider 的 C++ 支持由 ReSharper C++ 驱动。 查看 ReSharper C++ 2024.1 最新变化了解更多详细信息。
我们很高兴向调试器调用堆栈添加蓝图支持。 Rider 现在不会在调用堆栈中显示匿名内存地址,而是显示蓝图调用相关信息,并与现有 C++ 代码交错。 请确保更新到最新版本的 RiderLink 插件!
此版本添加了对 Unreal Engine 的 Slate UI 框架的支持,让 Rider 能够使用 Go to Definition(转到定义)和 Find Usages(查找用法)命令,以及 Rename(重命名)重构来重命名 Slate 宏声明的符号。
无论是作为重新设置格式操作直接调用还是在您输入时,Rider 现在都将正确设置 Slate DSL 代码格式。
Rider 与蓝图功能的智能集成进一步发展,支持在重命名 UENUM
实例时添加核心重定向,C++ 代码中的资源名称获得资产路径补全。
我们继续完善 Perforce 支持,提供了多项实用体验改进,简化了会话过期时的登录,并使用户在 Rename(重命名)重构期间可以更轻松地将文件放入正确的更改列表。
我们还修正了 UnrealBuildTool 的问题,该问题有时会导致之前在 Visual Studio 中构建的项目被完全重建。 这极大地改善了两款 IDE 的使用体验。 Unreal Engine 5.4 和所有版本的 Rider 均已获得这项修正。
我们非常高兴地宣布,我们已与 Sirenix 的同仁达成合作,为热门 Odin Inspector Unity 资源提供支持。 Rider 将识别并高亮显示 Odin Inspector 序列化的字段和属性,为布局特性中的组名称提供补全和检查,并显示 Odin 的 GUIColor
类的预览。 它还会识别 Odin 的 range 特性,并在 Rider 自己的整数值分析中使用这些值,如果值超出范围,则会发出警告。
Rider 2024.1 基于 2023.3 版本中引入的着色器关键字支持构建。 您可以在编辑着色器文件时启用或禁用不同的关键字,从而启用和禁用不同预处理程序分支中的高亮显示和代码分析。 此版本增加了对隐式着色器关键字、阶段特定的局部关键字以及带有 _KEYWORD_DEFINED
后缀的预处理程序指令的支持。
此版本更新了检查底层游戏对象生命周期时 Rider 如何高亮显示 Unity 对 null
相等比较的可能意外处理。 如果现代 C# null
检查绕过生命周期检查,Rider 现在会高亮显示 null
比较何时执行检查,而不是显示警告。
我们将在后续博文中详细说明这一点。
由于 Rider 提供了更多 DOTS 特定的支持,调试得到了提升,例如在 Watches(监视)窗格中检查 IJobEntity
实例时添加 Entity
子节点。 暂停点也已更新为可与 DOTS 系统配合使用。 纹理调试值可视化器已修正了一些 bug,新的集合可视化器将有助于游戏对象的集合。
另外还有一些资源解析性能改进,识别序列化字段的修正,以及其他小型修正和更新。 您可以在更改日志中了解详情。
我们推进了 Godot 支持,为可选插件带来更多更新,您可以从设置中的 Plugins(插件)标签页安装该插件。 最近的更改包括:
.gd
、.tscn
、.tres
、.godot
)的语法高亮显示,以及 .gdshader
的改进高亮显示。 launchSettings.json
运行或调试 Godot 测试 (JetBrains/godot-support#125)。 @addTagHelper
和 @removeTagHelper
指令解析引用 Rider 现在可以为 Razor 视图中 @addTagHelper
和 @removeTagHelper
指令内指定的程序集名称解析引用。 因此,您现在可以受益于代码补全、查找用法以及便利的代码导航。
此外,Rider 会高亮显示任何未解析的程序集名称作为警告,以便您在 Razor 视图中轻松识别。
现在,您可以在生成 Blazor Component(Blazor 组件)文件模板时生成额外文件,例如 .razor.cs
、.razor.css
、.razor.js
。
Rider 2024.1 为 React 新引入了多个快速修复,可供动态创建 props 和状态。 您可以使用快捷键 Alt+Enter 应用这些快速修复。
参阅此页详细了解有关 Web 开发的改进。
此版本为 Rider 中的 VCS 支持带来更新,包括:
在此处详细了解所有更改。
Rider 2024.1 数据库处理方面的最显著改进包括:
INSERT
的对齐代码样式。GROUP BY
子句的列补全。参阅此页面详细了解有关处理数据库的改进。
.NET 8 SDK 引入了 .NET Aspire – 处理在 .NET 堆栈上构建分布式应用程序的复杂问题的新方式。 为了回应这一创新,我们提供了新的集成式工具 – 适用于 Rider 的 .NET Aspire 插件。
插件适用于 Rider 2024.1,可以直接从 JetBrains Marketplace 或通过 Settings/Preferences | Plugins(设置/偏好设置 | 插件)下载。
在这篇博文中详细了解 .NET Aspire 和新插件。
内置的 dotMemory 分析工具现已提供对冻结对象堆 (FOH) 的支持 – FOH 最初随 .NET 6 SDK 引入,作为垃圾回收性能改进的一部分。
FOH 会为不可变对象分配专用内存区域。 这些对象在分配后不会更改,也不会进行垃圾回收。 对此技术的支持使 dotMemory 能够对 FOH 中不可变对象使用的内存进行更详细的分析,促进内存使用的优化。
内置的 dotTrace 和 dotMemory 分析器现已支持 MAUI 和 .NET macOS 应用程序。
支持的目标框架:
net8.0-windows
、net7.0-windows
。net8.0-maccatalyst
、net7.0-maccatalyst
。net8.0-macos
、net7.0-macos
。点击此处详细了解可用分析模式。
新的 Azure Toolkit for Rider 插件是一个开源项目,可以帮助 .NET 开发者轻松创建、开发、配置、测试、管理高度可用且可扩缩的 Web 应用并将其部署到 Azure。
该插件可以在 JetBrains Rider 中下载安装,也可以从 JetBrains Marketplace 获取。
我们在此版本中增强了对 GitHub Actions 的支持。 我们的开发重点是通过提供专为 GitHub Actions 设计的更高效智能的功能来丰富您的 CI/CD 工作流。
增强功能的列表包括:
action.yml
的品牌功能。有关详情,请查看 IntelliJ IDEA 博客上的这篇博文。
2023.3 版本中引入的类型关系图获得了功能升级,包含配置关系图的新方式,即:
要了解为应用程序生成类型依赖关系图的更多方式,请参阅这篇博文。
Rider 内的 Assembly Explorer 现已支持 WebAssemblies 的 WebCIL 打包格式。
支持涵盖:
.wasm
文件的功能。