JetBrains Rider Win版是一款JetBrains发布的快速强大的C#编辑器,用于在Windows,Mac和Linux上进行Unity开发。是基于IntelliJ平台和ReSharper的跨平台.NET IDE,同时具有ReSharper的强大功能。
以无与伦比的2500多项智能代码检查和重构,Rider增强您的C#体验,使您更加迅速编写零误差的代码。Rider可以打开,管理,构建和调试各种基于.NET Framework,Mono和.NET Core的解决方案,并为.NET开发中使用的大多数语言提供编辑支持:C#,VB.NET,F#,ASP.NET语法,XAML,XML,JavaScript,TypeScript,JSON,HTML,CSS和SQL。
Rider 2024.1 提供了一项新功能来监测应用程序的性能和收集关键指标,粘性行可以用来更好地了解您在代码中的位置并更快浏览代码,更新的 New Project(新建项目)对话框将使项目配置更快、更轻松。
功能介绍
一、使用虚幻引擎进行游戏开发
Rider已经在Unity开发世界中广泛使用,并且现在捆绑了Unreal Engine支持。这使得Rider成为各种游戏开发人员的主要IDE。
1、与虚幻引擎深度集成
Rider已准备好在所有三个主要平台上进行虚幻引擎开发:Windows、Linux和macOS。它与.uproject模型一起工作,为您节省中间项目模型生成的时间。
UnrealLink插件支持Rider和Epic Games的虚幻编辑器之间的高级集成。插件:
将蓝图信息带到编辑器。
添加用于管理游戏启动的设置。
提供更方便的虚幻编辑器日志版本。
2、一流的C++支持
Rider由ReSharper C++提供支持,它为现代C++提供尖端的本机支持。受益于其1300多个代码检查、290多个快速修复、解决方案范围的重构和代码生成能力。无论您是使用游戏的C++代码、虚幻引擎代码还是着色器,Rider都可以帮助您立即浏览它并通过嵌入提示对其进行解释。
3、虚幻引擎反射机制
虚幻引擎反射宏和反射说明符不仅仅是Rider的纯文本替换。自动完成和快速文档了解这些实体并帮助您有效地编码。同样,虚幻引擎远程过程调用不仅仅是常规函数,Rider在代码导航和代码生成过程中匹配它们。
4、针对虚幻引擎优化的代码分析
Rider与UnrealHeaderTool集成,并在您编辑代码时显示您通常在编译时在编辑器中看到的相同错误和警告。该过程已经过优化,对整体性能的影响最小。
Rider会检测Unreal Engine项目,并在这些项目中生成和分析代码时自动使用Unreal Engine命名约定规则。
5、调试器
支持Unreal Engine Natvis的基于LLDB的调试器可帮助您挖掘游戏代码或引擎中的任何问题。您可以设置行、符号、数据和条件断点。您还可以在调试会话期间在Rider编辑器中单步调试代码、评估表达式,甚至查看变量值。
6、单元测试
Rider为虚幻引擎自动化测试框架提供了开箱即用的支持。从单元测试工具窗口或直接从编辑器启动测试,查看其结果,然后重新运行失败的、所有的或特定的测试。
您可以在Windows上使用Rider进行一般C++开发-只需.sln在Rider中将文件作为项目打开即可。在Linux和macOS上,Rider仅限.uproject于C++项目的模型。
二、远程开发测试版
远程开发
Rider现在支持我们的远程开发工作流程的Beta版。它允许您从世界任何地方连接到运行Rider后端的远程机器。所有处理都发生在强大的远程机器上,您可以像在本地机器上一样无缝地处理您的项目。此功能可以从Rider的欢迎屏幕或名为JetBrains Gateway的新应用程序启动,该应用程序可在Toolbox应用程序中使用。
此外,您还可以使用JetBrains Space创建、预构建、共享、复制、休眠和管理开发环境,JetBrains Space是整个软件开发管道的统一平台。
三、工具栏
1、自定义新工具栏
新的主工具栏看起来令人难以置信,人们喜欢它。但是没有办法添加自定义小部件或重新排列现有小部件,许多人对此表示不满。你问,我们交付!您现在可以在工具栏的左侧和右侧添加新元素,以及重新排列和删除小部件。
工具栏自定义页面有两种打开方式:
首选项/设置|外观与行为|菜单和工具栏|工具栏
右键单击工具栏并选择自定义工具栏。
2、新工具栏中的配置文件
如果您使用我们在Rider 2021.3中发布的新主工具栏,您可能已经注意到无法立即开始使用dotTrace进行分析。在此版本中,我们解决了这一不便。
Profile with Timeline、Profile with…和Profile running process…选项现在在Run/Debug小部件的更多菜单(“kebab”图标)中可用。
四、Docker快速模式
快速模式已用于 Docker 和 Docker-Compose 解决方案,这将显着减少开发过程中的构建时间!
在容器中构建项目可能比在本地机器上构建相同的项目慢得多。启用快速模式后, Rider将首先使用创建 Docker 映像的基础阶段,docker build然后它将在您的主机上构建项目,这明显更快。最后,项目工件作为卷挂载到 Docker 容器中。此模式仅适用于Debug 配置,以及在Release下构建的项目将使用您的Dockerfile.
您可以通过编辑运行配置 |禁用任何特定运行配置 的快速模式。构建 | 修改选项 | 不要使用 Docker 快速调试。
五、在Search Everywhere 中搜索文本
Search Everywhere是您在解决方案、IDE 设置或 Git 历史记录中查找内容时的主要入口点。从 Rider 2022.1 开始,我们添加了新的文本选项卡,该选项卡显示解决方案中与您键入字符串匹配的所有文本。它对所有代码和文本文件运行全文搜索,包括.cs、 .fs、.cshtml、.json、.js、.css、 .editorconfig、.cvs、.dockerfile、.md和 .txt文件。
像往常一样,所有这些结果也会出现在“全部”选项卡上。
但是,您可以缩小要运行此搜索的文件的范围:
按搜索区域:所有地点、最近查看的文件、 本地更改或数据源。
按文件类型,使用预定义的值列表或手动指定的文件掩码。
Search Everywhere中的 此文本搜索不会影响现有的 “在文件中查找”功能。你可以同时使用它们。
六、用户界面/用户体验
1、新的通知工具窗口
我们已将事件日志实例替换为新的通知工具窗口,以更清晰地突出显示来自 IDE 的重要且有用的通知。通过此次更新,我们的目标是让通知更加可见,并在您可以从导航栏访问的专用工具窗口中更好地组织它们。
通知工具窗口中 出现的所有通知分为两种类型:建议和时间线。
建议部分提供在大多数用例中被认为有用或有帮助的通知 。此外,建议可以是重要的或常规的。如果您收到重要通知,您会在导航栏上的铃铛图标上看到一个红色圆圈。常规建议由铃铛图标上的蓝色圆圈表示。
2、变焦指示器
过去,很难确定文本编辑器中的内容是放大还是缩小。没有明确显示当前缩放状态的可见指示器。
在此版本中,我们引入了 Zoom 小部件,它显示在当前文本编辑器的底部。它向您显示编辑器的实际字体大小并帮助您将其重置为默认值。
从此小部件中,您可以直接导航到Preferences/Settings,您可以在其中调整缩放是否应影响所有编辑器或仅影响活动编辑器。
3、Visual Studio 2022 键盘映射
我们添加了一个新的Visual Studio 2022键盘映射,它解决了当前Visual Studio键盘映射与 Visual Studio IDE(例如Alt+ Up/ )之间的所有快捷键差异Down,有利于后者的快捷键。我们向那些习惯于没有 ReSharper 的 2022 年之前的 Visual Studio 版本的人推荐它。
七、语言支持
1、C# 支持
我们继续改进对 C# 10 的支持,尤其是 全局使用。我们已经实现了两个新的重构,它们也可用作上下文操作。
Extract Global Using可以帮助您在项目中引入全局使用的概念。您可以在常规指令上调用它using ,Rider 会建议将其提取到指定 GlobalUsings.cs文件中(如果您的项目中还没有这样的文件,它将被创建)。using不再需要 的常规将从项目中的文件中删除。
如果您决定将全局重构using为常规 using,使用重构的内联全局也可以提供帮助。当在 global 上调用时using,它会将其从 中删除, GlobalUsings.cs并将相应的using 语句添加到项目中需要的文件中。
Find Usages和扩展方法的代码分析 支持全局 using 功能。
我们研究了即将到来的 C# 11 和支持的 通用属性
2、可空引用类型
我们已将针对不应为空的表达式的空检查的警告分为两类。第一个警告是针对从不为空的表达式,因为 NRT 注释是这样说的。第二个警告是针对存在实际运行时检查 null 的表达式。
我们添加了一个新设置,用于切换到运行时强制非空警告模式。可从Alt+Enter菜单中的配置项组访问基于注释的警告。
[MemberNotNull]和[MemberNotNullWhen] 注释现在在不使用可为空引用类型的项目中得到支持。
3、剃刀和 Blazor
以下是我们为 Razor 和 Blazor 所做的一些最值得注意的功能和修复:
我们添加了对[EditorRequired].NET 6 中新属性的支持。如果您尝试使用 Blazor 组件而不指定所需参数,也可以使用相应的检查和快速修复。
我们已经在 Razor 语法中实现了对 C# 本地函数的期待已久的支持。
我们改进了.razor带有 Blazor 组件的文件中的代码清理。它不再删除所有@using声明。
我们还通过对 Blazor 组件的引用修复了 Razor 代码中的If To Switch和Invert If上下文操作。
Rider 现在为 Blazor 注入的属性使用正确的命名样式。
Comment with Line Comment操作 现在仅注释您期望的 Razor 代码部分。
我们在 Razor 代码中添加了通过继承层次结构的导航。现在为基本符号和派生符号显示相应的装订线标记。您可以单击它们以导航到代码。
4、F# 支持
我们修复了各种项目模型问题,这些问题可能导致项目加载和更新时冻结,以及导致分析忽略项目或其他文件更改的问题。我们还解决了导致 F# 脚本导致包引用和其他文件include指令无效的问题。
C# 项目现在可以正确查看InternalVisibleToF# 项目中定义的属性,因此可以访问内部符号而不会在 IDE 中导致错误。
我们已经修复了类型提供程序的一些问题,例如以前出现在具有相同类型提供程序实例化的代码中的分析错误。
我们已经解决了重命名重构的问题,因为它不适用于某些符号。
除了 F# 插件不同部分的各种错误修复外,F# 支持还收到了更多分析器和快速修复,建议使用最近添加的 F# 功能。许多现有功能也得到了改进。您可以查看 完整的发行说明 以获取更多信息。
八、添加网络参考
我们对向 .NET 项目添加 Web 引用进行了多项改进。让我们来看看最引人注目的:
您现在可以添加对 .NET 和 .NET Core 项目的 Web 引用(以前,这仅适用于 .NET Framework 项目)。
您可以.wsdl使用文件路径而不是“添加 Web 引用”对话框中的 URL 从文件中添加引用。
如果您将 WCF Web 服务引用添加到项目,此引用将出现在“解决方案视图”工具窗口 的“服务”节点中。
如果 Web 服务参考具有基本身份验证,Rider 将显示您输入凭据的对话框。
net.tcp现在net.pipe支持 URI 前缀。
九、Web开发
1、端点
我们将继续改进我们的 Endpoints 支持和 Endpoints Viewer。查看器现在还知道并收集 ASP.NET Core 6 最小 API 路由和基于约定的路由的端点。这意味着除了已经可用的功能之外,您还可以探索和导航到这些端点并使用智能代码完成。
2、Vue 的改进
Rider 2022.1 对Vue 3进行了多项改进。如果您将组件定义为全局,IDE 现在将在您的.vue 文件中识别它们。Rider 还应该正确支持createApp语法。它将正确匹配使用createApp 其相关元素创建的应用程序。此版本还包括对Nuxt 3的支持,这是一个流行的 Vue 框架的新版本。
十、统一支持
Rider 对 Unity 的出色支持将在 2022.1 中继续提供,其中包括一些新功能、一些修复和性能改进,以及大量的底层工作。
我们还发布了 RiderFlow——一个新的 Unity 风景工具。这是 Unity 编辑器的免费插件,旨在帮助关卡设计师、美术师、编码人员和其他创意团队轻松创建和管理场景。快速导航、查找游戏对象和资产、直观地突出场景中资产的使用情况,甚至重构场景以快速轻松地替换其中的对象。
.asmdef现在,每当您添加或删除对项目的引用时, Rider 都会自动更新您的文件。如果您使用来自另一个项目的类型,Rider 将添加对该.asmdef文件的引用并导入该类型。
Rider 现在支持.asmref装配定义参考文件以及 .asmdef文件。您可以获得语法突出显示、模式验证和完成。 Ctrl参考名称上的+Click将导航到参考 .asmdef文件,并且.asmdef文件将显示在Find Usages中。
每个项目都有一个新的默认运行配置,用于在批量模式下运行 Unity 编辑器,这非常适合运行单元测试并将结果保存在 Logs文件夹中。
现在 Unity 支持较新版本的 C#,Rider 扩展了 Unity Color类型的突出显示以包括目标类型new表达式。快速预览您已声明的颜色,并使用Alt+Enter选择新值。
Rider 2022.1 改进了大型 Unity 项目的加载时间,尤其是对于较慢的磁盘或文件系统。虽然这些改进对于大型项目来说意义重大,但对于小型项目来说却不太明显,但每个人都会从加载期间减少的内存使用中受益。
此版本包括其他有针对性的性能修复。我们已经修复了一些问题,例如在打开Unity Explorer工具窗口时键入时行为缓慢,以及在 Unity 工具窗口中显示长日志条目时速度变慢。
当然,还有许多其他小的修复和改进,例如检查以帮助您获得正确的方法签名[MenuItem],修复在 Linux 上查找已安装文档的位置,以及确保 Rider 包的新通知在您的项目中保持最新。
十一、插件
1、骑手的 Azure 工具包
Rider 根据项目的属性确定要使用的Azure Functions Core Tools的版本。AzureFunctionsVersion
如果您需要安装特定版本的Azure Functions Core Tools,您可以使用Chocolatey、Brew或npm并将 Rider 指向Preferences / Settings |中的正确路径 工具 | 天蓝色 | 功能。
默认情况下,Rider 会为您管理Azure Functions Core Tools。它会根据您的项目下载所需的工具,并自动使它们保持最新。
2、降价
如果 Markdown 文件包含您需要在终端中执行的命令的指令,您可以使用装订线中的运行图标直接从 Markdown 文件运行这些命令。
我们在编辑 Markdown 文件时将出现在文本选择上的浮动工具栏添加了新选项。使用此工具栏,您现在可以快速选择标题样式并创建列表。您可以使用所需的选项自定义此工具栏。为此,请转到首选项/设置 | 外观与行为 | 菜单和工具栏 | Markdown 编辑器浮动工具栏。
我们还向 Markdown 块添加了新的复制代码片段操作,以便您可以轻松地将内容复制到剪贴板。
3、otCover dotUltimate
我们已经实现了将代码标记为“不可覆盖”的选项。您可以使用它从覆盖过程中排除不需要测试的代码并获得更清晰的快照。要使用此功能,请安装 JetBrains.dotCover.MSBuild NuGet 包并// dotcover disable/enable在代码周围添加注释。
十二、VCS 支持
1、在提交工具窗口中打开预览差异
我们已将Preview Diff图标从Commit工具栏移至菜单,可通过单击Cog图标访问该菜单,并将其重命名为Show Diff Preview on Single Click。您可以在此处指定单击更改树中的文件时希望看到的行为:可以选择该文件,也可以打开该文件以进行差异预览。
2、使用 Git Blame更新注释
我们改进了使用 Git Blame进行注释的功能,以便更轻松地调查引入的更改。当您将鼠标悬停在注释上时,Rider 会在编辑器中突出显示行中的差异,当您单击它时,IDE 会打开Git Log工具窗口。
3、更新了 Git 工具窗口中的提交详细信息窗格
提交详细信息窗格现在包含有关 GPG 签名和构建状态的信息 。以前,此数据仅在 Git 日志中显示为一列。
4、Git 文件历史记录:没有索引的新 UI
Git 文件历史工具窗口 的新 UI现在独立于索引过程。即使 Log 索引关闭,数据也会用新界面表示。
以前,对于具有未索引历史记录的文件,Rider 会显示一个相对较慢且缺少功能的历史记录视图。
十三、其他
1、重命名解决方案
每个人都知道命名很难。有时,您甚至可能想要更改整个解决方案的名称。Rider 可以在这里为您提供帮助。在解决方案资源管理器 工具窗口中调用解决方案节点的上下文菜单,选择编辑 | 重命名,然后为您的解决方案输入新名称。
2、“新建项目”对话框中的 SDK 选项
我们已将 SDK 选项添加为“ 新建解决方案/项目”对话框中的下拉列表。它可以帮助您在安装新版本后为较旧的 .NET SDK 版本创建项目。
3、运行静态方法
运行静态方法操作适用于面向 .NET 和 .NET Core 的项目 。您可以通过单击装订线边距上的绿色“运行”三角形直接从代码编辑器执行任何静态方法。
4、罗斯林
我们针对 Roslyn 分析器和源生成器的支持引入了多项改进:
Rider 支持.globalconfig文件,用于从 Roslyn 分析器配置代码分析规则。
Rider 现在将正确的语言版本传递给 Roslyn 分析器。
我们改进了源生成器和分析器的加载和启动过程。无需重新启动 IDE 即可解析源生成器生成的代码。
5、代码清理和格式化
我们重新组织了Alt+Enter 菜单中与代码清理和格式化相关的所有项目。Format selection、Cleanup selection和Apply 语法样式被组合成一个Reformat 和 Cleanup项, 以提供一个入口点。
除了这些更改之外,语法样式设置现在可在“ 配置代码样式”和“自动检测代码样式设置”操作中使用。预览代码样式面板也显示了语法样式的变化。
6、NuGet 支持
我们更新了 NuGet 项目属性页面中的包图标选择器。它现在使用新元素而不是过时的元素。
7、更好地支持 DebuggerDisplay 属性
呈现派生类型时,调试器会考虑 DebuggerDisplay属性,即使它应用于基类也是如此。
调试器支持在程序集级别指定DebuggerDisplay属性。
更新日志
主要更新
Monitoring(监测)工具窗口
新的 Monitoring(监测)工具窗口
Rider 2024.1 引入了 Monitoring(监测)工具窗口,可让您在运行或调试时监测 .NET 应用程序的性能并在后台收集关键指标。
粘性行
我们在编辑器中引入了粘性行,旨在简化大文件的处理和新代码库的探索。 滚动时,此功能会将类或方法的开头等关键结构元素固定到编辑器顶部。 这将使作用域始终保持在视野中,您可以点击固定的行快速浏览代码。
集合可视化器
检查集合,例如数组、列表、字典和其他可枚举类型,以在调试期间更好地了解程序数据的状态,并识别与数据处理相关的潜在问题。
更新的 New Project(新建项目)对话框
我们彻底重做了 New Project(新建项目)对话框,使新项目易于配置。 它提供了对 .NET 特定的项目配置和自定义模板参数的全面支持,您现在可以直接从对话框安装目标 SDK 和适当的 MAUI 工作负载。
UX/UI
更新的 New Project(新建项目)对话框
我们彻底重做了 New Project(新建项目)对话框,希望减少新项目配置过程中的认知负担。 以下是更新的对话框中的变化:
对所有 .NET 特定的项目配置选项的支持,例如创建 Blazor WASM 应用程序时用于渐进式 Web 应用的复选标记。
对自定义项目模板中形参的支持。
可以直接从对话框安装解决方案的目标 SDK。
可以从对话框安装正确的 MAUI 工作负载。
用于缩小整个 IDE 的选项
此前,可以整体放大和缩小 IDE,这会同时调整所有 UI 元素的大小。 不过,最初的缩放比例被限制在 100-200% 范围内。 现在,我们添加了将 IDE 比例缩小至 70% 的功能,让您在调整内容的大小时更加灵活。
改进的 Terminal(终端)工具窗口
此版本重做了 Terminal(终端)工具窗口,引入了可视化和功能增强,旨在提高基于终端的任务的便利性和简单性。 此更新改进了工具的可视化效果,也扩展了其功能集。
您可以在 Settings/Preferences | Tools | Terminal | Enable New Terminal(设置/偏好设置 | 工具 | 终端 | 启用新终端)中启用新终端。
代码分析
С# 支持
到集合表达式的更多转换
现在,您将获得建议,将源代码中的更多代码结构转换为 C# 12 中的集合表达式,例如空数组或 ImmutableArray 声明和初始化。
Collection was modified(集合已被修改)分析
我们添加了新的 Possible ‘System.InvalidOperationException: Collection was modified’(可能的 ‘System.InvalidOperationException: 集合已被修改’)检查,在 foreach 循环内迭代期间修改集合时,它会发出警告,因为此修改可能会导致运行时异常。 此分析了解集合修改后退出循环的情况,这些情况不会触发警告。 检查附带对应快速修复,可以帮助您立即解决此问题。
Generate | Formatting Members(生成 | 设置成员格式)更新
Generate | Formatting Members(生成 | 设置成员格式)可供生成样板代码来重写 ToString() 方法并为类型返回有意义的字符串。 从 2024.1 版本开始,此功能支持更多类型,例如 ISpanFormattable、IUtf8SpanFormattable 和 IFormattable。
对异步方法中可处置资源的增强支持
[MustDisposeResource] 注解改进:C# 代码分析现在可以确保正确处置异步方法返回的资源(包括 Task<IDisposable> 和 ValueTask<IDisposable> 中包装的资源),帮助您避免意外处置任务本身。
类任务返回值:2024.1 版本中对类任务返回值的正确分析可以确保检查等待的资源是否已处置,并且包含通过 .ConfigureAwait(…)、.AsTask() 或 .Result 检索的资源。
Change Signature(更改签名)重构的更新
以下是我们对 Change Signature(更改签名)重构所做的一些改进:
重构现在支持 Deconstruct 方法。 您可以添加、移除、重新排列和重命名形参,这些更改将反映在方法声明及其用法中。
代码补全现在可用于类型形参。 这意味着,例如,需要为 List<> 指定类型时,您可以使用代码补全轻松选择所需类型,例如 int。
添加或更新形参时,类型命名空间会被自动缩短。 这有助于在应用重构后保持代码整洁和简单。 例如,如果在 Change Signature(更改签名)对话框中指定 System.Collections.Generic.List<System.Int16> 类型,在生成的代码中它将被自动缩短为 List<short>。
重构现在支持最新版本 C# 的更多功能,例如 in 和 ref readonly 修饰符以及 record 类型。
Make Static(设为 static)重构的更新
在此版本中,Make Static(设为 static)重构支持主构造函数形参。 它们位于 Introduce parameters(引入形参)列表中,并具有单独的图标帮助您轻松区分。 此重构也适用于局部函数。
解决方案级分析中的高资源利用率模式
我们正在为解决方案级分析积极完善高资源利用率模式,通过更有效地利用 CPU 并行性显著缩短分析时长。 我们改进了代码分析活动的内存分配分析,最大程度地减少垃圾回收所花费的时间。 优化过程仍在推进,我们欢迎您启用此模式并提供体验反馈。
性能
现在,代码中的元素重命名更快、更高效。 此更改还会影响 Rider 的其他核心组件,提升多个功能的性能,包括 Find Usages(查找用法)。
对于大型类,静态成员的 Move to Another Type(移动到其他类型)重构的性能得到了显著提高。
对 protobuf-net 库的支持
代码分析现在提供对 protobuf-net 库中 ProtoContract 特性和 ImplicitFields 枚举的支持。 这两项都可以用来标记隐式用于序列化的成员。 因此,此类成员不再使用 unused members(未使用的成员)警告进行标记。
F# 支持
现在,可以通过针对缺失成员的新快速修复、代码补全和 Generate(生成)重构在对象表达式中生成重写。
您现在还可以在搜索联合用法时查看联合用例。 这使类型实例的创建和模式匹配方式更容易了解。
我们添加了一个 new 后缀模板,用于为类和接口创建记录类型和对象表达式的实例。
为 F# 实现了粘性行支持,帮助在处理较长的类型和函数时更便捷地查看上下文。
F# 支持还包括其他新的快速修复和上下文操作。 您可以在 GitHub 上的完整版本说明中了解所有更改。
智能拼写检查器
继 ReSharper 之后,Rider 也获得了升级的拼写和语法检查器。 新的拼写检查器支持 20 多种语言,能够在 Rider 支持的编程语言(C#、C++、VB.NET)、标记语言(HTML、XML、XAML)和注释中捕获自然语言错误。
.NET 调试
集合可视化器
Rider 2024.1 中的集合可视化器提供集合(数组、列表、字典和其他可枚举类型)的图形表示,可用于展开和收起元素、查看各个值,以及轻松浏览数据结构。 这有助于在调试期间了解程序数据的状态以及诊断与收集、操作或数据处理相关的问题。
步进时间
调试时,能够评估调试器在两个断点之间执行代码所需的时间非常有价值。 如果您发现步进时间过长,则可能表明代码存在性能问题。 使用 Rider 调试应用程序时,您将看到一个内联提示,显示上一个断点与当前断点之间经过的时间。
内联断点
从此更新开始,如果存在多条语句,Rider 将允许您在单行代码上设置多个断点。 您可以使用相关的内联提示或快捷键 (Ctrl + F8) 设置断点。
重做的 Run to cursor(运行到光标)嵌入选项
在 2024.1 版本中,我们引入了 Skip to cursor(跳到光标)选项,使其与 IntelliJ IDEA 中的运作方式保持一致。 新的 Run to Cursor(运行到光标)嵌入选项提供了在调试时快速导航到特定代码行的方式。 程序挂起后,您可以将鼠标悬停在您希望继续执行的代码行上。 然后,您可以利用 Run to Cursor(运行到光标)弹出窗口执行代码,直至到达光标所在的行。
Blazor WASM 的热重载
热重载现在可用于运行和调试 Blazor WebAssembly (WASM) 应用程序。 热重载适用于 .cs、.razor 和 .css 文件(包括带作用域的 .razor.css 文件)。
该功能默认启用。 您可以前往 Settings/Preferences | Build, Execution, Deployment | Hot Reload(设置/偏好设置 | 构建、执行、部署 | 热重载)进行配置。
对 .NET 进程转储的支持
调试期间,进程转储至关重要,因为它们允许您在发生错误时检查程序状态,即使问题不容易重现。 此前,Rider 只能处理 C++ 核心转储。 现在,IDE 还允许您为 .NET 进程导入转储。
要导入进程转储,请转到 Run | Debug Core Dump(运行 | 调试核心转储)或将转储文件拖放到编辑器中。
AI Assistant
Explain with AI(使用 AI 解释)
我们在单元测试失败、构建失败或调试会话期间抛出的异常或错误消息旁添加了 Explain with AI(使用 AI 解释)按钮。
Rename with AI(使用 AI 重命名)
重命名局部变量时,您将在代码补全弹出窗口中获得 AI 赋能的名称建议。
AI Assistant 插件
请注意,在版本 2024.1 中,AI Assistant 已解绑,现在作为独立插件提供。 这一改动是为了在使用 AI 赋能的技术方面提供更多的决策灵活度,让您能够在工作环境中更好地控制偏好和要求。 AI Assistant 仍然需要有效的 JetBrains AI 订阅。
游戏开发
Unreal Engine
C++ 支持
C++ 支持的显著增强包括:
Change Signature(更改签名)提供了新功能,包括在指针、引用或值类型之间更改形参类型。
Call Tracking(调用跟踪)现在支持传出调用链。
您现在可以轻松自定义生成的文档注释的样式。 此外,文档注释中还提供语法检查。
C++20 模块重做的实现提升了性能并提供了对内部模块分区的支持。
Rider 的 C++ 支持由 ReSharper C++ 驱动。
蓝图调试器调用堆栈
我们很高兴向调试器调用堆栈添加蓝图支持。 Rider 现在不会在调用堆栈中显示匿名内存地址,而是显示蓝图调用相关信息,并与现有 C++ 代码交错。 请确保更新到最新版本的 RiderLink 插件!
Slate 格式设置和智能导航
此版本添加了对 Unreal Engine 的 Slate UI 框架的支持,让 Rider 能够使用 Go to Definition(转到定义)和 Find Usages(查找用法)命令,以及 Rename(重命名)重构来重命名 Slate 宏声明的符号。
无论是作为重新设置格式操作直接调用还是在您输入时,Rider 现在都将正确设置 Slate DSL 代码格式。
智能蓝图功能
Rider 与蓝图功能的智能集成进一步发展,支持在重命名 UENUM 实例时添加核心重定向,C++ 代码中的资源名称获得资产路径补全。
Perforce 更新、Visual Studio 互操作等等
我们继续完善 Perforce 支持,提供了多项实用体验改进,简化了会话过期时的登录,并使用户在 Rename(重命名)重构期间可以更轻松地将文件放入正确的更改列表。
我们还修正了 UnrealBuildTool 的问题,该问题有时会导致之前在 Visual Studio 中构建的项目被完全重建。 这极大地改善了两款 IDE 的使用体验。 Unreal Engine 5.4 和所有版本的 Rider 均已获得这项修正。
Unity
Odin Inspector 支持
我们非常高兴地宣布,我们已与 Sirenix 的同仁达成合作,为热门 Odin Inspector Unity 资源提供支持。 Rider 将识别并高亮显示 Odin Inspector 序列化的字段和属性,为布局特性中的组名称提供补全和检查,并显示 Odin 的 GUIColor 类的预览。 它还会识别 Odin 的 range 特性,并在 Rider 自己的整数值分析中使用这些值,如果值超出范围,则会发出警告。
着色器变体改进
Rider 2024.1 基于 2023.3 版本中引入的着色器关键字支持构建。 您可以在编辑着色器文件时启用或禁用不同的关键字,从而启用和禁用不同预处理程序分支中的高亮显示和代码分析。 此版本增加了对隐式着色器关键字、阶段特定的局部关键字以及带有 _KEYWORD_DEFINED 后缀的预处理程序指令的支持。
null 分析和对象生命周期检查
此版本更新了检查底层游戏对象生命周期时 Rider 如何高亮显示 Unity 对 null 相等比较的可能意外处理。 如果现代 C# null 检查绕过生命周期检查,Rider 现在会高亮显示 null 比较何时执行检查,而不是显示警告。
调试、资源索引编制等
由于 Rider 提供了更多 DOTS 特定的支持,调试得到了提升,例如在 Watches(监视)窗格中检查 IJobEntity 实例时添加 Entity 子节点。 暂停点也已更新为可与 DOTS 系统配合使用。 纹理调试值可视化器已修正了一些 bug,新的集合可视化器将有助于游戏对象的集合。
另外还有一些资源解析性能改进,识别序列化字段的修正,以及其他小型修正和更新。 您可以在更改日志中了解详情。
Godot
我们推进了 Godot 支持,为可选插件带来更多更新,您可以从设置中的 Plugins(插件)标签页安装该插件。 最近的更改包括:
适用于更多 Godot 文件类型(包括 .gd、.tscn、.tres、.godot)的语法高亮显示,以及 .gdshader 的改进高亮显示。
Rider 现在将自动检测正确的 .NET 运行时,以从 launchSettings.json 运行或调试 Godot 测试 (JetBrains/godot-support#125)。
我们在主工具栏中添加了 Start Godot Editor(启动 Godot 编辑器)按钮,类似于对 Unity 可用的操作 (JetBrains/godot-support#119)。
Web 开发
为 @addTagHelper 和 @removeTagHelper 指令解析引用
Rider 现在可以为 Razor 视图中 @addTagHelper 和 @removeTagHelper 指令内指定的程序集名称解析引用。 因此,您现在可以受益于代码补全、查找用法以及便利的代码导航。
此外,Rider 会高亮显示任何未解析的程序集名称作为警告,以便您在 Razor 视图中轻松识别。
Blazor Component(Blazor 组件)文件模板
现在,您可以在生成 Blazor Component(Blazor 组件)文件模板时生成额外文件,例如 .razor.cs、.razor.css、.razor.js。
适用于 React props 和状态创建的快速修复
Rider 2024.1 为 React 新引入了多个快速修复,可供动态创建 props 和状态。 您可以使用快捷键 Alt+Enter 应用这些快速修复。
版本控制
此版本为 Rider 中的 VCS 支持带来更新,包括:
适用于 GitLab 和 GitHub 仓库的编辑器内代码审查。
Git 工具窗口中的 CI 状态检查。
防止大文件提交到仓库。
Commit(提交)工具窗口中的新 Stash 标签页。
从比较中排除文件夹和文件的选项。
处理数据库
Rider 2024.1 数据库处理方面的最显著改进包括:
数据编辑器中的本地筛选器。
单记录视图。
移动 CSV 文件中的列。
针对 UUID 的更多功能。
多行 INSERT 的对齐代码样式。
GROUP BY 子句的列补全。
插件
适用于 Rider 的 .NET Aspire 插件
.NET Aspire
.NET 8 SDK 引入了 .NET Aspire – 处理在 .NET 堆栈上构建分布式应用程序的复杂问题的新方式。 为了回应这一创新,我们提供了新的集成式工具 – 适用于 Rider 的 .NET Aspire 插件。
插件适用于 Rider 2024.1,可以直接从 JetBrains Marketplace 或通过 Settings/Preferences | Plugins(设置/偏好设置 | 插件)下载。
对冻结对象堆 (FOH) 的支持 dotUltimate
内置的 dotMemory 分析工具现已提供对冻结对象堆 (FOH) 的支持 – FOH 最初随 .NET 6 SDK 引入,作为垃圾回收性能改进的一部分。
FOH 会为不可变对象分配专用内存区域。 这些对象在分配后不会更改,也不会进行垃圾回收。 对此技术的支持使 dotMemory 能够对 FOH 中不可变对象使用的内存进行更详细的分析,促进内存使用的优化。
桌面 MAUI 应用的性能和内存分析 dotUltimate
内置的 dotTrace 和 dotMemory 分析器现已支持 MAUI 和 .NET macOS 应用程序。
支持的目标框架:
MAUI Windows:net8.0-windows、net7.0-windows。
MAUI Mac:net8.0-maccatalyst、net7.0-maccatalyst。
macOS 应用程序:net8.0-macos、net7.0-macos。
新的 Azure Toolkit 插件
新的 Azure Toolkit for Rider 插件是一个开源项目,可以帮助 .NET 开发者轻松创建、开发、配置、测试、管理高度可用且可扩缩的 Web 应用并将其部署到 Azure。
该插件可以在 JetBrains Rider 中下载安装,也可以从 JetBrains Marketplace 获取。