Rider 2023.2 改进了对 C# 的支持,为处理局部函数和原始字符串以及解决常见 Entity Framework 问题提供了新检查。 我们对 UI 做出了大量改进,最终确定了 IDE 时尚、现代且高度可自定义的新外观。 Rider 的游戏开发再次获得提升,更新了 Unity 的 DOTS 功能,优化了 Unreal Engine 的蓝图索引,另外还有多项增强。 Rider 2023.2 也是第一个通过 JetBrains AI Assistant 插件提供由 AI 支持的功能的 IDE 版本。
使用 Rider 2023.2,您可以按颜色在打开的项目之间导航! 标题现在默认带有预定义的颜色,您也可以根据自己的喜好进行更改。 要为项目设置新的颜色,请右键点击标题,访问上下文菜单。 选择 Change Toolbar Color(更改工具栏颜色)选项,然后选择您想要的颜色。 要禁用此功能,只需在上下文菜单中取消选择 Use Project Colors in Toolbar(在工具栏中使用项目颜色)选项即可。
在此版本中,我们为 Rider 引入了一项重要补充 – AI Assistant。 由 AI 提供支持的初始功能集提供了集成式 AI 聊天,并自然融入一些核心 IDE 用户工作流。 AI Assistant 可以分析所选代码、解释提交的含义,以及根据您的规范创建 Unity 文件。
对于 Rider 2023.2,我们从性能和 UX/UI 两方面重做了 Build(构建)工具窗口。 构建输出结果现在将在左侧显示为事件树,在右侧显示为日志。 输出将以“延迟”方式加载,只加载和显示您选择从事件树中查看的构建详细信息,这使输出对 CPU 更加友好并更易于导航。
我们为处理原始字符串添加了新的 C# 检查和上下文操作,还改进了输入辅助并增加了格式设置选项:
查看相应博文,详细了解改进的原始字符串支持。
我们为使用 Entity Framework 等对象关系映射 (ORM) 框架处理数据库时可能遇到的常见问题添加了数个新检查、快速修复和上下文导航选项。
在这篇博文中详细了解新的 Entity Framework 相关检查。
Rider 2023.2 引入了两项新检查和相应的快速修复,旨在提高局部函数的代码可读性:
return
或 continue
置于方法末尾的局部函数之前的建议。 return
、continue
或其他控制流跳转语句将其与可执行代码分开的建议。 阅读这篇博文详细了解新检查。
#nullable
指令和 NRT 注解的检查 针对 #nullable
指令和 NRT 注解推出了多项新检查:
JetBrains.Annotations
特性相矛盾的检查。 要详细了解这些检查,请阅读此博文。
var
声明的导航 为用于包装其他类型的常用类型从 var
导航时,所有导航操作(Go to…(转到…)、Find Usages(查找用法)等)现在都会建议底层类型。 例如,从具有 ImmutableArray<Person>?
类型的变量的 var
关键字使用 Go to declaration(转到声明)操作时,Rider 会建议导航到 Person
。
您可以在以下博文中了解详情。
在 2023.2 版本中,我们引入了对 C# 12 预览中的非记录类和结构体的主构造函数支持。 有多项检查可以检测初始化能够以新的主构造函数表示的类型,并建议应用快速修复来大幅减少代码重复的数量。
有时,类型的初始化不应过于简单,并且不能再使用主构造函数表达。 对此,我们引入了多项上下文操作,将主构造函数形参反向替换为构造函数和普通字段。
要查看主构造函数所有功能的实际运作情况,请参阅独立博文。
为了支持 C# 12 语言更新,我们引入了对 lambda 表达式中默认形参值的支持。 除了与识别此语法相关的标准警告消息集之外,我们还调整了现有检查 The parameter has the same default value(形参具有相同的默认值),将 lambda 中的默认形参值纳入考量。 有关详情,请参阅此处。
Rider 2023.2 引入了两项新的代码检查,旨在更好地控制对象处置:
我们还改进了 Generate dispose pattern(生成处置模式)功能,支持 IAsyncDisposable
接口,并能够生成异步方法来释放资源。
有关这些新增内容的更多信息,请参阅此处。
代码分析的 C# 弃元支持获得了一系列实用改进:
_
的变量和形参,具有 The _
name is typically reserved for local parameters without usages(_ 名称通常为没有用法的局部形参保留)警告。 它们看起来像是“被丢弃”的值,但实际上,它们所代表的恰恰相反。 查看博文详细了解改进的弃元支持。
将值传递到元组实参或返回值类型时,C# 允许您跳过组件名称。 但是,如果没有名称,在不查看目标类型的情况下就很难判断每个组件的含义。 例如,许多软件开发者将不得不检查元组(null
、false
)的指定位置以理解其组件的含义。
这就是嵌入提示可以派上用场的地方! 当这些名称在组件表达式中尚不明显时,Rider 2023.2 将显示带有元组组件名称的嵌入提示,使代码更易阅读和理解。
对于 null 和默认组件,即使目标组件没有显式名称,Rider 2023.2 也会显示有关其目标类型的提示。 它会对字符串和对象类型进行例外处理,因为这些类型通常信息量不大。
名称可以提高可读性的另一种常见情况是析构模式,其中显式名称可以从 Deconstruct
方法或源元组组件获知。 开发这些提示是为了在模式本身不包含足够的数据来理解匹配的内容(例如 value is ({ }, true, null)
)时为您提供额外上下文。
#pragma warning
指令的支持 Pragma 指令可供通过 ID 轻松禁用或恢复编译器警告。 不过,虽然此类 ID 是与编译器通信的好方法,但人类开发者可能很难理解。 如果没有百科知识,开发者可能会不清楚 CS0168
或 CS0618
这样的 ID 指的是什么,也不确定需要注意什么。
在此版本中,重新设计并在 Rider 2022.3 中首次亮相的 IDE 界面将成为所有新用户的默认界面。 如果您尚未转换,我们建议您前往 Settings / Preferences | Appearance & Behavior | New UI | Enable new UI(设置/偏好设置| 外观与行为 | 新 UI | 启用新 UI)尝试一下。
我们改进了 Windows 和 Linux 上新 UI 中主工具栏汉堡包菜单的行为。 点击菜单图标后,元素现在水平显示在工具栏上方。
为了简化多个运行配置的管理,我们在 Run(运行)微件中实现了固定首选配置的选项。 要将运行配置添加到 Pinned(固定)部分,首先打开其名称旁边的竖三点菜单,然后选择 Pin(固定)。 如果有多个固定的配置,在列表中拖放即可轻松排列。
我们扩展了新 UI 主工具栏的自定义选项。 现在,您可以使用下拉菜单快速选择要添加到工具栏的操作。 为此,请右键点击任意微件,选择 Add to Main Toolbar(添加到主工具栏),然后浏览可用选项。
在 Rider 2023.2 中,我们通过引入替代的 Light with Light Header(带有浅色标题的浅色主题)选项改进了 Light(浅色)主题,该选项为窗口标题、工具提示和通知气球提供匹配的浅色。
在 Solution Explorer 工具窗口中,新增了 Open Directories with Single Click(单击打开目录)选项,可以更快展开和收起项目文件夹,更快响应。 选项位于三点图标菜单中。
Rider 2023.2 添加了备受期待的选项,可根据修改时间在 Solution Explorer 中排列文件。 每当项目中有更改被保存时,这个新功能就会自动重排文件。 要启用此功能,首先在 Solution Explorer 中打开竖三点菜单,然后选择 Tree Appearance | Sort by Modification Time(树外观 | 按修改时间排序)。
基于 IntelliJ 的 IDE 和 .NET 工具的 2023.2 版本包含一项主要新功能:AI Assistant。 它仍处于开发的早期阶段,但您已经可以尝试将 AI Assistance 融入核心 IDE 用户工作流并将 AI 功能与深度代码理解集成。 在我们的网络帮助中了解详情。
AI Assistant 尚未与 JetBrains IDE 的稳定版本捆绑,可以作为适用于版本 2023.2.x 的单独插件安装。 目前,我们还推出了一个等候名单来管理使用 AI Assistant 功能的请求。
使用 AI Assistant 工具窗口与 LLM 对话、提出问题或迭代任务。 IDE 将提供特定于项目的上下文,例如项目中使用的语言和技术。 对结果感到满意后,您可以使用 Insert Snippet at Caret(在文本光标处插入代码段)功能或手动复制,将 AI 生成的代码放入编辑器。
在编辑器中选择特定代码段,然后从 AI Actions…(AI 操作…)上下文菜单调用操作。
AI Assistant 可以帮助您:
提交消息对话框现在有一个 Generate Commit Message with AI Assistant(使用 AI Assistant 生成提交消息)按钮。 点击将更改的差异发送到 LLM,后者将生成描述更改的提交消息。 您也可以让 AI Assistant 解释其他团队成员所做的提交。
AI Assistant 还可以帮助您为根据您的规范编写的 Unity 解决方案生成文件。 在 Solution Explorer 中右键点击项目,从上下文菜单选择 Create with AI Assistant(使用 AI Assistant 创建),然后编写提示。 在 AI 生成文件内容后,点击 Create New File(创建新文件),它将自动添加到项目中。
在 Rider 2023.2 中,我们修改了缓存 IDE 系统运行所需数据的方法。 此修订已获得无数性能测试的支持,将显著减少每个打开的解决方案的磁盘空间消耗。 在实际中,这意味着减少花费在磁盘输入/输出上的总体时间,缩短解决方案的加载时间。
在 Rider 2023.2 中,Rider 中的 Find Usages(查找用法)功能获得了功能升级。 现在,如果在符号(如方法、类或变量)上调用 Find Usages Advanced(高级查找用法),IDE 将显示一个窗口,您可以在其中指定额外搜索条件。
阅读这篇博文了解详情。
为了改善代码库导航体验,我们在 Settings / Preferences | Editor(设置/偏好设置 | 编辑器)下的专属 Search and Navigation(搜索和导航)页面中添加了许多实用选项。
Rider 2023.2 针对 Roslyn 分析器和源生成器引入一系列改进。 包括但不限于:
我们的最新版本引入了以快速模式运行 Docker 的选项。 从 Rider 2023.2 开始,在 WSL 上也能够以快速模式使用 Docker。 要在没有 Docker Desktop 的 Windows 机器上运行 Docker 容器,您首先需要安装 WSL,在 Linux 发行版上安装 Docker,并将 WSL 添加到 Rider Settings/Properties(设置/属性)下的 Build, Execution, Deployment | Docker(构建、执行、部署 | Docker)。 然后,您将能够在 WSL 上运行和调试 Docker 容器(使用或不使用快速模式)。
通过引入标签,Rider 2023.2 将让您更轻松地微调 Docker Compose 的运行配置。 您可以将这些代码添加到 docker-compose.yml
文件,指定如何以及是否要运行和调试应用程序。
例如,如果您想为部分服务禁用快速模式,您可以为其设置 com.jetbrains.rider.fast.mode: "false"
标签。 如果您想禁用调试模式,请使用标签 com.jetbrains.rider.debug: "false"
。
热重载终于对以 .NET MAUI 为目标的解决方案可用! 在 Rider 中使用 XAML 热重载允许移动开发者在其 MAUI 应用运行时更改 UI 和代码,无需完全重新构建和重新部署。 更新后的更改会立即应用,提供更快、更迭代的开发体验。
此版本搭载了大量针对 Unity 开发的功能,对 ShaderLab 文件编辑体验带来了许多改进,对 DOTS 功能进行了额外更新,并对 USS 文件提供了更好的支持。
新的 AI Assistant 是解决问题和学习的工具,我们希望它可以为 Unity 开发者提供帮助。 当您处理 Unity 项目时,Rider 会告知 AI Assistant。因此,如果您提出“如何创建编辑器窗口?”或者“如何添加菜单项?”之类的问题,AI Assistant 能够明白您指的是 Unity 编辑器中的窗口或菜单项,并建议 Unity API 来帮助您实现目标。
Unity 上下文也提供了对额外行为进行原型设计的绝佳机会。 当您要求它创建文件时,AI Assistant 将包含一个按钮,该按钮可以自动创建包含其建议内容的文件。 随着 AI Assistant 功能的发展,我们会将其扩展到其他操作和更多上下文中。
此版本在 Rider 对 ShaderLab 文件的支持上获得重大改进,包括新的输入辅助、实时模板、填充路径导航和 Structure(结构)工具窗口,以及 Ctrl+点击导航到着色器或通道的名称声明。
我们为这些更新单独准备了一篇博文! 阅读了解更多详细信息。
基于来自 Unity 社区的宝贵反馈,我们对面向数据的技术栈 (DOTS) 的代码生成做出了一些实用改进。 除了将 Burst 上下文分析扩展到代码的更多部分之外,我们还引入了新的文件和实时模板。
调试器也开始理解 DOTS。 RefRO
和 RefRW
类型的改进表示现在将更直观地显示引用包装器背后的值。 不过,您仍然可以展开 Raw Value(原始值)节点来查看原始表示。
这个版本对 Unity 样式表 (USS) 文件做出了重大更新,Rider 现在支持 var
函数,并为最近 Unity 版本中添加的各种属性添加了高亮显示和补全。
我们还为资源数据库 API 中使用的路径添加了补全。 开始输入后,Rider 就会从项目建议路径。
当然,还有许多较小的更新和修正。 例如,我们修正了偶尔会导致单元测试陷入 Canceling(正在取消)状态的问题,.meta
文件不会再错误地为隐藏文件夹创建,Unity 特定图标现在也与新 UI 匹配。
Rider 2023.2 也为 Unreal Engine 支持带来重大改进,具有大量 C++ 更新,并引入了对热重载和实时编码的支持、对蓝图索引编制的性能改进,以及对 Perforce 的修正和支持更新。
这个版本提高了 IDE 在编制蓝图索引时的性能。 当您第一次打开项目时,Rider 将为所有蓝图资源编制索引,使其能够查找蓝图中类的用法,并直接在文本编辑器中显示序列化数据的值、缓存该数据,并在您工作时逐步使其保持最新。
先前版本的 Rider 会在对 C++ 代码编制索引时为这些资源编制索引,导致 Rider 需要较长准备时间才能开始工作。
在 2023.2 中,Rider 现在将在对所有 C++ 代码编制索引后将资源索引编制作为后台任务。 在 Rider 编制资源索引期间,您将能够在编辑和导航代码时享受代码高亮显示的好处。
Rider 现在支持从 IDE 调用热重载或实时编码,允许您在编辑器运行时更新 Unreal 应用程序。 在 Unreal 编辑器中启用其中一项功能后,Rider 将显示 Build and Reload(构建并重新加载)工具栏按钮,用于在 Unreal 加载更新时编译更改。
我们改进了与 Perforce 的集成,推出多项修正和更新,特别是减少了刷新本地文件状态所需的时间。 Rider 现在将在打开解决方案时自动检测 Perforce 工作区,它还会从注册表(而不仅仅是环境变量)获取 P4CONFIG
的值和其他设置。
Rider 2023.2 包含许多其他针对 C++ 游戏开发的实用更新和修正。 我们改进了一个特别棘手的场景:此前 Rider 在处理非常大的项目文件时会挂起。 现在,在使用基于 .uproject 的解决方案时,Rider 可以轻松地将 Find In Files(在文件中查找)的作用域限制为插件目录。 RiderLink 插件获得多项修正,支持使用最新的 VC++ 工具链构建。
我们在 Rider 2023.2 中关注如何改进呈现 JavaScript 和 TypeScript 中类型错误的方式。 现在,您的错误和警告将以可读性更高的方式格式化,使代码中的问题更易发现。 这适用于所有 TypeScript 和一些最常见的 JavaScript 错误。 另外,它还可以处理本地化后的错误!
Rider now supports the CSS Nesting Module feature. 我们实现了语法支持和检查,用于确保嵌套选择器不以标识符或函数符号开头。
Rider 的 Tailwind 代码补全插件现已提供对 Razor 文件的支持。
我们为 Vue 用户带来了一些好消息! 初始的 Volar 支持已经登陆 Rider,助力提供更准确的错误检测。 默认情况下,Volar 将用于 TypeScript v5.0 和更高版本,我们自己的实现将用于更早版本。 在 Settings | Languages & Frameworks | TypeScript | Vue(设置 | 语言和框架 | TypeScript | Vue)下,您可以将 Vue 服务设置为在所有 TypeScript 版本上使用 Volar 集成。
了解详情:WebStorm 2023.2 最新变化
我们重做了 Git 和 Mercurial 提交检查的行为,旨在加快整个提交流程。 检查将在提交之后且推送之前在后台执行。
Rider 2023.2 引入了一项备受期待的功能,可供有选择地提交代码区块的特定部分。 要执行部分提交,请选择区块中的行,然后从上下文菜单中调用 Include these lines into commit(将所选行包含到提交中)。 区块将被分为单独的行,所选行将被高亮显示。 您可以使用复选框或上下文菜单在选区中添加或排除行。
2023.2 之前,您在 Rider 中使用 dotMemory 时只能进行内存分配分析。 在 2023.2 中,您可以收集内存快照并在 Rider 中分析,就像在独立版本的 dotMemory 中一样。
现在,Call Tree(调用树)视图能够按各个线程对调用堆栈分组,让您可以更深入地了解线程特定的性能问题。
静态分析工具的配置非常复杂。 不过,在 Rider 2023.2 中,我们通过完全集成旨在适应任何 CI/CD 管道的智能静态分析引擎 Qodana 消除了这一痛点。
这一集成具备两大重要优势。 首先,配置有所简化。 您只需点击几下即可触发分析,查看整个项目的问题列表,以及在首选 CI/CD 系统中配置 Qodana 来建立质量门。 第二个好处是对齐。 在 CI/CD 系统中配置 Qodana 后,您就可以立即查看服务器端分析的结果,无需离开 IDE。
另外,Qodana 现已结束预览阶段。 查看这篇博文详细了解新版本,并获取在 Rider 中利用 Qodana 的说明。
我们在 Rider 2023.2 中重做了数据库连接对话框,移除了一些让用户感到困惑的非必要选项,并简化了连接工作流。 一大关键改进是,Rider 现在会在打开的解决方案中扫描连接字符串,并在对话框中提供建议。
Rider 2023.2 中的其他显著更改包括:
参阅此页详细了解有关处理数据库的改进。
我们已启用 F# 到 C# 内存中引用,所以您不必为了引用 F# 代码而构建 C# 项目即可查看更改。 这项更改带来了更好的跨语言重构和导航,因为除了已经工作的 C# 到 F# 内存中引用之外,F# 编译器服务现在始终查看实际的 C# 源。
新的 Go to File Member(转到文件成员)弹出窗口现在可用于 F#,使查看文件结构和从基类型导航到成员更加简单。
我们引入了一些实用改进,让您可以更轻松地使用联合体 case 模式:
We also want to thank Florian Verdonck for contributing to this improvement.
我们已修正许多问题,使重写的生成更加准确。 例如,生成的成员现在始终位于正确的位置,并且,如果生成的成员需要,类型现在会重新格式化。 A huge thanks goes to David Schaefer for contributing to this improvement.
You can find the full list of F# updates and fixes available in Rider 2023.2 here.
长期以来,有两个并行存在且具有交叉功能的插件:IDE Settings Sync(IDE 设置同步)和 Settings Repository(设置仓库)。
为避免因拥有两个近似捆绑插件而造成困惑,我们将其功能集合并为一个解决方案,即新的 Settings Sync(设置同步)插件。
Rider 2023.2 为插件开发者提供了对 LSP API 的支持。 LSP API 主要针对想要在 IDE 中使用特定 LSP 服务器提供编码辅助的插件开发者。 如果您已经创建了自己的编程语言或框架,则可以编写 LSP 服务器和插件以在 IDE 中获得支持。
目前,LSP 支持包括错误和警告高亮显示、快速修复、代码补全和声明导航。 有关详情,请参阅 IntelliJ IDEA 团队的这篇博文。
JetBrains 致力于让产品更具有包容性并可供所有人不受阻碍地使用。 在这个版本中,我们对 Rider 的无障碍功能做出了多项改进,确保所有用户,包括失明或视力障碍者,都能充分使用我们的产品。 改进包括:
除了对 ARM64 的现有支持之外,Rider 2023.2 还引入了对上传到在 ARM32 上运行的远程机器(例如 Raspberry Pi)的远程调试器工具的支持。 要附加到此类远程进程,请使用 Attach to Process(附加到进程)对话框。
JetBrains Rider 包含嵌入式终端模拟器,可从 IDE 内部使用命令行 shell。 在 Windows 上,先前版本的 Rider 依赖第三方 WinPTY 库作为终端模拟层。 在 Rider 2023.2 中,我们针对其支持的 Windows 版本切换到操作系统提供的 ConPTY。 预计不会产生明显的变化,但这一切换为进一步改进终端和运行控制台打开了大门。