Rider 最新变化

Rider 2023.2 改进了对 C# 的支持,为处理局部函数和原始字符串以及解决常见 Entity Framework 问题提供了新检查。 我们对 UI 做出了大量改进,最终确定了 IDE 时尚、现代且高度可自定义的新外观。 Rider 的游戏开发再次获得提升,更新了 Unity 的 DOTS 功能,优化了 Unreal Engine 的蓝图索引,另外还有多项增强。 Rider 2023.2 也是第一个通过 JetBrains AI Assistant 插件提供由 AI 支持的功能的 IDE 版本。

主要更新

可自定义项目标题

可自定义项目标题 新 UI

使用 Rider 2023.2,您可以按颜色在打开的项目之间导航! 标题现在默认带有预定义的颜色,您也可以根据自己的喜好进行更改。 要为项目设置新的颜色,请右键点击标题,访问上下文菜单。 选择 Change Toolbar Color(更改工具栏颜色)选项,然后选择您想要的颜色。 要禁用此功能,只需在上下文菜单中取消选择 Use Project Colors in Toolbar(在工具栏中使用项目颜色)选项即可。

AI Assistant

AI Assistant 限定访问

在此版本中,我们为 Rider 引入了一项重要补充 – AI Assistant。 由 AI 提供支持的初始功能集提供了集成式 AI 聊天,并自然融入一些核心 IDE 用户工作流。 AI Assistant 可以分析所选代码、解释提交的含义,以及根据您的规范创建 Unity 文件。

了解详情

重做了 Build(构建)工具窗口

对于 Rider 2023.2,我们从性能和 UX/UI 两方面重做了 Build(构建)工具窗口。 构建输出结果现在将在左侧显示为事件树,在右侧显示为日志。 输出将以“延迟”方式加载,只加载和显示您选择从事件树中查看的构建详细信息,这使输出对 CPU 更加友好并更易于导航。

GitLab 集成

Rider 2023.2 引入了与 GitLab 的初始集成,可供直接从 IDE 使用 Merge Requests(合并请求)功能,并简化开发工作流。

代码分析

C# 支持

改进了对原始字符串的支持

我们为处理原始字符串添加了新的 C# 检查和上下文操作,还改进了输入辅助并增加了格式设置选项:

  • Use raw string(使用原始字符串)检查,将多行逐字字符串转换为其原始表示。
  • Simplify raw string(简化原始字符串)检查,移除冗余的引号和美元符号。
  • 多项上下文操作,用于添加或移除引号、插值大括号和美元符号,以及在单行和多行表示之间切换。
  • 多个代码格式化程序选项,能够对齐或缩进原始字符串中的内容。
  • 改进了按 EnterDeleteBackspace 键时的输入辅助。

查看相应博文,详细了解改进的原始字符串支持。

常见 Entity Framework 问题检查

常见 Entity Framework 问题检查

我们为使用 Entity Framework 等对象关系映射 (ORM) 框架处理数据库时可能遇到的常见问题添加了数个新检查、快速修复和上下文导航选项。

  • 对于可能出现的“N+1”问题,具有 Possible multiple queries to the database for related entities (N+1 problem)(在相关实体上可能对数据库进行多次查询(N+1 问题))和 Possible multiple queries to the database (N+1 problem)(可能对数据库进行多次查询(N+1 问题))检查、相应的快速修复以及来回上下文导航,用于调查代码中可能存在“N+1”问题的位置。
  • 除了检测“N+1”问题外,我们还为 Entity Framework 引入了另一项实用检查:Query can return incomplete data for related entities(在相关实体上查询可以返回不完整数据)。 我们也提供了快速修复和来回上下文导航来帮助您调查这个问题。

在这篇博文中详细了解新的 Entity Framework 相关检查。

处理局部函数的检查

Rider 2023.2 引入了两项新检查和相应的快速修复,旨在提高局部函数的代码可读性:

  • 将显式 returncontinue 置于方法末尾的局部函数之前的建议。
  • 将局部函数移动到方法或块的末尾,并使用显式 returncontinue 或其他控制流跳转语句将其与可执行代码分开的建议。

阅读这篇博文详细了解新检查。

适用于 #nullable 指令和 NRT 注解的检查

适用于 #nullable 指令和 NRT 注解的检查

针对 #nullable 指令和 NRT 注解推出了多项新检查:

  • Redundant nullable directive(冗余的可以为 null 指令)检查。
  • Unused nullable directive(未使用的可以为 null 指令)检查。
  • 旨在提醒您可以为 null 引用类型 (NRT) 注解与基成员上的 JetBrains.Annotations 特性相矛盾的检查。

要详细了解这些检查,请阅读此博文

改进了 var 声明的导航

改进了 var 声明的导航

为用于包装其他类型的常用类型从 var 导航时,所有导航操作(Go to…(转到…)、Find Usages(查找用法)等)现在都会建议底层类型。 例如,从具有 ImmutableArray<Person>? 类型的变量的 var 关键字使用 Go to declaration(转到声明)操作时,Rider 会建议导航到 Person

您可以在以下博文中了解详情。

主构造函数 C# 12 预览

在 2023.2 版本中,我们引入了对 C# 12 预览中的非记录类和结构体的主构造函数支持。 有多项检查可以检测初始化能够以新的主构造函数表示的类型,并建议应用快速修复来大幅减少代码重复的数量。

有时,类型的初始化不应过于简单,并且不能再使用主构造函数表达。 对此,我们引入了多项上下文操作,将主构造函数形参反向替换为构造函数和普通字段。

要查看主构造函数所有功能的实际运作情况,请参阅独立博文

对 lambda 中默认形参值的支持

对 lambda 中默认形参值的支持 C# 12 预览

为了支持 C# 12 语言更新,我们引入了对 lambda 表达式中默认形参值的支持。 除了与识别此语法相关的标准警告消息集之外,我们还调整了现有检查 The parameter has the same default value(形参具有相同的默认值),将 lambda 中的默认形参值纳入考量。 有关详情,请参阅此处

改进了对可处置资源的支持

Rider 2023.2 引入了两项新的代码检查,旨在更好地控制对象处置:

  • 当返回的对象被立即处置时,Return of a variable captured by 'using' statement('using' 语句捕获的变量的返回)检查会发出提醒。
  • Return of a task produced by 'using'-captured object('using' 捕获的对象生成的任务的返回)检查能够识别 Task(任务)由 using 语句捕获的对象生成然后立即返回的场景。

我们还改进了 Generate dispose pattern(生成处置模式)功能,支持 IAsyncDisposable 接口,并能够生成异步方法来释放资源。

有关这些新增内容的更多信息,请参阅此处

更好的 C# 弃元支持

代码分析的 C# 弃元支持获得了一系列实用改进:

  • 您现在可以使用 Push-to-Hint 功能快速检查舍弃值的名称和类型。
  • 对于正在使用的名为 _ 的变量和形参,具有 The _ name is typically reserved for local parameters without usages(_ 名称通常为没有用法的局部形参保留)警告。 它们看起来像是“被丢弃”的值,但实际上,它们所代表的恰恰相反。
  • Use discard assignment(使用弃元赋值)检查可用于将未使用的变量和形参替换为弃元。

查看博文详细了解改进的弃元支持。

新的嵌入提示提高代码可读性

新的嵌入提示提高代码可读性

带有元组组件名称的嵌入提示

将值传递到元组实参或返回值类型时,C# 允许您跳过组件名称。 但是,如果没有名称,在不查看目标类型的情况下就很难判断每个组件的含义。 例如,许多软件开发者将不得不检查元组(nullfalse)的指定位置以理解其组件的含义。

这就是嵌入提示可以派上用场的地方! 当这些名称在组件表达式中尚不明显时,Rider 2023.2 将显示带有元组组件名称的嵌入提示,使代码更易阅读和理解。

对于 null 和默认组件,即使目标组件没有显式名称,Rider 2023.2 也会显示有关其目标类型的提示。 它会对字符串和对象类型进行例外处理,因为这些类型通常信息量不大。

名称可以提高可读性的另一种常见情况是析构模式,其中显式名称可以从 Deconstruct 方法或源元组组件获知。 开发这些提示是为了在模式本身不包含足够的数据来理解匹配的内容(例如 value is ({ }, true, null))时为您提供额外上下文。

改进了对 #pragma warning 指令的支持

改进了对 #pragma warning 指令的支持

Pragma 指令可供通过 ID 轻松禁用或恢复编译器警告。 不过,虽然此类 ID 是与编译器通信的好方法,但人类开发者可能很难理解。 如果没有百科知识,开发者可能会不清楚 CS0168CS0618 这样的 ID 指的是什么,也不确定需要注意什么。

UX/UI

在此版本中,重新设计并在 Rider 2022.3 中首次亮相的 IDE 界面将成为所有新用户的默认界面。 如果您尚未转换,我们建议您前往 Settings / Preferences | Appearance & Behavior | New UI | Enable new UI(设置/偏好设置| 外观与行为 | 新 UI | 启用新 UI)尝试一下。

全 IDE 缩放

重做了 Windows 和 Linux 上主工具栏中的汉堡菜单 新 UI

我们改进了 Windows 和 Linux 上新 UI 中主工具栏汉堡包菜单的行为。 点击菜单图标后,元素现在水平显示在工具栏上方。

固定运行配置

Run(运行)微件中固定运行配置 新 UI

为了简化多个运行配置的管理,我们在 Run(运行)微件中实现了固定首选配置的选项。 要将运行配置添加到 Pinned(固定)部分,首先打开其名称旁边的竖三点菜单,然后选择 Pin(固定)。 如果有多个固定的配置,在列表中拖放即可轻松排列。

全 IDE 缩放

改进了主工具栏自定义 新 UI

我们扩展了新 UI 主工具栏的自定义选项。 现在,您可以使用下拉菜单快速选择要添加到工具栏的操作。 为此,请右键点击任意微件,选择 Add to Main Toolbar(添加到主工具栏),然后浏览可用选项。

带有浅色标题的浅色主题

带有浅色标题的 Light(浅色)主题 新 UI

在 Rider 2023.2 中,我们通过引入替代的 Light with Light Header(带有浅色标题的浅色主题)选项改进了 Light(浅色)主题,该选项为窗口标题、工具提示和通知气球提供匹配的浅色。

在项目目录之间单击导航

在项目目录之间单击导航

Solution Explorer 工具窗口中,新增了 Open Directories with Single Click(单击打开目录)选项,可以更快展开和收起项目文件夹,更快响应。 选项位于三点图标菜单中。

在 Solution Explorer 中按修改时间对文件进行排序

在 Solution Explorer 中按修改时间对文件进行排序

Rider 2023.2 添加了备受期待的选项,可根据修改时间在 Solution Explorer 中排列文件。 每当项目中有更改被保存时,这个新功能就会自动重排文件。 要启用此功能,首先在 Solution Explorer 中打开竖三点菜单,然后选择 Tree Appearance | Sort by Modification Time(树外观 | 按修改时间排序)。

AI Assistant 限定访问

基于 IntelliJ 的 IDE 和 .NET 工具的 2023.2 版本包含一项主要新功能:AI Assistant。 它仍处于开发的早期阶段,但您已经可以尝试将 AI Assistance 融入核心 IDE 用户工作流并将 AI 功能与深度代码理解集成。 在我们的网络帮助中了解详情

AI Assistant 尚未与 JetBrains IDE 的稳定版本捆绑,可以作为适用于版本 2023.2.x 的单独插件安装。 目前,我们还推出了一个等候名单来管理使用 AI Assistant 功能的请求。

与 AI Assistant 聊天

与 AI Assistant 聊天

使用 AI Assistant 工具窗口与 LLM 对话、提出问题或迭代任务。 IDE 将提供特定于项目的上下文,例如项目中使用的语言和技术。 对结果感到满意后,您可以使用 Insert Snippet at Caret(在文本光标处插入代码段)功能或手动复制,将 AI 生成的代码放入编辑器。

AI Actions…(AI 操作…)菜单

AI Actions…(AI 操作…)菜单

在编辑器中选择特定代码段,然后从 AI Actions…(AI 操作…)上下文菜单调用操作。

AI Assistant 可以帮助您:

  • 解释所选代码。
  • 寻找潜在的问题和重构选项。
  • 针对所选代码开始新 AI 聊天。

提交消息生成和解释

提交消息对话框现在有一个 Generate Commit Message with AI Assistant(使用 AI Assistant 生成提交消息)按钮。 点击将更改的差异发送到 LLM,后者将生成描述更改的提交消息。 您也可以让 AI Assistant 解释其他团队成员所做的提交。

AI-Assisted Unity F

AI 辅助 Unity 文件生成

AI Assistant 还可以帮助您为根据您的规范编写的 Unity 解决方案生成文件。 在 Solution Explorer 中右键点击项目,从上下文菜单选择 Create with AI Assistant(使用 AI Assistant 创建),然后编写提示。 在 AI 生成文件内容后,点击 Create New File(创建新文件),它将自动添加到项目中。

性能

在 Rider 2023.2 中,我们修改了缓存 IDE 系统运行所需数据的方法。 此修订已获得无数性能测试的支持,将显著减少每个打开的解决方案的磁盘空间消耗。 在实际中,这意味着减少花费在磁盘输入/输出上的总体时间,缩短解决方案的加载时间。

导航和搜索

Find Usages Advanced(高级查找用法)

Find Usages Advanced(高级查找用法)

在 Rider 2023.2 中,Rider 中的 Find Usages(查找用法)功能获得了功能升级。 现在,如果在符号(如方法、类或变量)上调用 Find Usages Advanced(高级查找用法),IDE 将显示一个窗口,您可以在其中指定额外搜索条件。

阅读这篇博文了解详情。

导航设置

为了改善代码库导航体验,我们在 Settings / Preferences | Editor(设置/偏好设置 | 编辑器)下的专属 Search and Navigation(搜索和导航)页面中添加了许多实用选项。

.NET SDK

Roslyn 分析器和源生成器

Rider 2023.2 针对 Roslyn 分析器和源生成器引入一系列改进。 包括但不限于:

  • 我们添加了 Reboot Source Generators(重新启动源生成器)按钮,如果自定义源生成器导致冻结,您无需重新启动整个 IDE。
  • Rider 现在还将在 Problems(问题)视图中显示源生成器异常,使您能够发现之前未被发现或未被解释的问题。
  • IDE 现在可以在 Problems(问题)视图中提供异常的完整堆栈跟踪,让您可以更轻松地查明错误的根本原因。
  • 您现在可以在 Solution Explorer 中修改 Roslyn 检查的严重性级别,更好地自定义和控制代码分析设置。
  • 最后,我们还添加了两个新的项目模板,用于在 Rider 中创建 Roslyn 分析器和源生成器项目。

Docker

在 WSL 上运行 Docker

在 WSL 上运行 Docker

我们的最新版本引入了以快速模式运行 Docker 的选项。 从 Rider 2023.2 开始,在 WSL 上也能够以快速模式使用 Docker。 要在没有 Docker Desktop 的 Windows 机器上运行 Docker 容器,您首先需要安装 WSL,在 Linux 发行版上安装 Docker,并将 WSL 添加到 Rider Settings/Properties(设置/属性)下的 Build, Execution, Deployment | Docker(构建、执行、部署 | Docker)。 然后,您将能够在 WSL 上运行和调试 Docker 容器(使用或不使用快速模式)。

Docker Compose 运行配置标签

Docker Compose 运行配置标签

通过引入标签,Rider 2023.2 将让您更轻松地微调 Docker Compose 的运行配置。 您可以将这些代码添加到 docker-compose.yml 文件,指定如何以及是否要运行和调试应用程序。

例如,如果您想为部分服务禁用快速模式,您可以为其设置 com.jetbrains.rider.fast.mode: "false" 标签。 如果您想禁用调试模式,请使用标签 com.jetbrains.rider.debug: "false"

MAUI 的 XAML 热重载

热重载终于对以 .NET MAUI 为目标的解决方案可用! 在 Rider 中使用 XAML 热重载允许移动开发者在其 MAUI 应用运行时更改 UI 和代码,无需完全重新构建和重新部署。 更新后的更改会立即应用,提供更快、更迭代的开发体验。

游戏开发

Unity

此版本搭载了大量针对 Unity 开发的功能,对 ShaderLab 文件编辑体验带来了许多改进,对 DOTS 功能进行了额外更新,并对 USS 文件提供了更好的支持。

适用于 Unity 的 AI Assistant

新的 AI Assistant 是解决问题和学习的工具,我们希望它可以为 Unity 开发者提供帮助。 当您处理 Unity 项目时,Rider 会告知 AI Assistant。因此,如果您提出“如何创建编辑器窗口?”或者“如何添加菜单项?”之类的问题,AI Assistant 能够明白您指的是 Unity 编辑器中的窗口或菜单项,并建议 Unity API 来帮助您实现目标。

Unity 上下文也提供了对额外行为进行原型设计的绝佳机会。 当您要求它创建文件时,AI Assistant 将包含一个按钮,该按钮可以自动创建包含其建议内容的文件。 随着 AI Assistant 功能的发展,我们会将其扩展到其他操作和更多上下文中。

ShaderLab 支持

此版本在 Rider 对 ShaderLab 文件的支持上获得重大改进,包括新的输入辅助、实时模板、填充路径导航和 Structure(结构)工具窗口,以及 Ctrl+点击导航到着色器或通道的名称声明。

我们为这些更新单独准备了一篇博文! 阅读了解更多详细信息。

Unity DOTS

基于来自 Unity 社区的宝贵反馈,我们对面向数据的技术栈 (DOTS) 的代码生成做出了一些实用改进。 除了将 Burst 上下文分析扩展到代码的更多部分之外,我们还引入了新的文件和实时模板。

调试器也开始理解 DOTS。 RefRORefRW 类型的改进表示现在将更直观地显示引用包装器背后的值。 不过,您仍然可以展开 Raw Value(原始值)节点来查看原始表示。

Unity 样式表支持

这个版本对 Unity 样式表 (USS) 文件做出了重大更新,Rider 现在支持 var 函数,并为最近 Unity 版本中添加的各种属性添加了高亮显示和补全。

其他更新

我们还为资源数据库 API 中使用的路径添加了补全。 开始输入后,Rider 就会从项目建议路径。

当然,还有许多较小的更新和修正。 例如,我们修正了偶尔会导致单元测试陷入 Canceling(正在取消)状态的问题,.meta 文件不会再错误地为隐藏文件夹创建,Unity 特定图标现在也与新 UI 匹配。

Unreal Engine

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

我们改进了与 Perforce 的集成,推出多项修正和更新,特别是减少了刷新本地文件状态所需的时间。 Rider 现在将在打开解决方案时自动检测 Perforce 工作区,它还会从注册表(而不仅仅是环境变量)获取 P4CONFIG 的值和其他设置。

其他更新

Rider 2023.2 包含许多其他针对 C++ 游戏开发的实用更新和修正。 我们改进了一个特别棘手的场景:此前 Rider 在处理非常大的项目文件时会挂起。 现在,在使用基于 .uproject 的解决方案时,Rider 可以轻松地将 Find In Files(在文件中查找)的作用域限制为插件目录。 RiderLink 插件获得多项修正,支持使用最新的 VC++ 工具链构建。

Web 开发

改进的错误格式设置

改进了错误格式设置

我们在 Rider 2023.2 中关注如何改进呈现 JavaScript 和 TypeScript 中类型错误的方式。 现在,您的错误和警告将以可读性更高的方式格式化,使代码中的问题更易发现。 这适用于所有 TypeScript 和一些最常见的 JavaScript 错误。 另外,它还可以处理本地化后的错误!

CSS 嵌套支持

Rider now supports the CSS Nesting Module feature. 我们实现了语法支持和检查,用于确保嵌套选择器不以标识符或函数符号开头。

Tailwind 代码补全支持

Rider 的 Tailwind 代码补全插件现已提供对 Razor 文件的支持。

Vue 语言服务器支持

Vue 语言服务器支持

我们为 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(将所选行包含到提交中)。 区块将被分为单独的行,所选行将被高亮显示。 您可以使用复选框或上下文菜单在选区中添加或排除行。

性能和内存分析

快照分析 dotMemory dotUltimate

2023.2 之前,您在 Rider 中使用 dotMemory 时只能进行内存分配分析。 在 2023.2 中,您可以收集内存快照并在 Rider 中分析,就像在独立版本的 dotMemory 中一样。

  • 快照分析适用于 Windows、Linux 和 macOS。
  • 在 Windows 上,您还可以导入并分析进程转储。
  • 部分功能和视图不可用,例如自动快照检查和创建堆栈跟踪视图。
为采样、跟踪和逐行快照按线程分组

为采样、跟踪和逐行快照按线程分组 dotTrace dotUltimate

现在,Call Tree(调用树)视图能够按各个线程对调用堆栈分组,让您可以更深入地了解线程特定的性能问题。

Dynamic Program Analysis

  • 以前,DPA 可能会错误地将暂停的调试时间计入代码执行时间,导致误报数据库问题。 此问题已在 2023.2 中修正。
  • 此外,如果相应的调用堆栈包含 lambda 函数的内存分配,DPA 之前会高亮显示大块代码。 现在,高亮显示更加精细。

代码质量工作流

Qodana 代码质量平台集成

静态分析工具的配置非常复杂。 不过,在 Rider 2023.2 中,我们通过完全集成旨在适应任何 CI/CD 管道的智能静态分析引擎 Qodana 消除了这一痛点。

这一集成具备两大重要优势。 首先,配置有所简化。 您只需点击几下即可触发分析,查看整个项目的问题列表,以及在首选 CI/CD 系统中配置 Qodana 来建立质量门。 第二个好处是对齐。 在 CI/CD 系统中配置 Qodana 后,您就可以立即查看服务器端分析的结果,无需离开 IDE。

另外,Qodana 现已结束预览阶段。 查看这篇博文详细了解新版本,并获取在 Rider 中利用 Qodana 的说明。

处理数据库

处理数据库

我们在 Rider 2023.2 中重做了数据库连接对话框,移除了一些让用户感到困惑的非必要选项,并简化了连接工作流。 一大关键改进是,Rider 现在会在打开的解决方案中扫描连接字符串,并在对话框中提供建议。

Rider 2023.2 中的其他显著更改包括:

  • Redis Cluster 的支持。
  • 架构迁移对话框的新 UI。
  • Data editor(数据编辑器)中设置时区。
  • 对外部数据库/数据共享的支持 [Redshift]。

参阅此页详细了解有关处理数据库的改进。

F# 支持

F# 到 C# 内存中引用

F# 到 C# 内存中引用

我们已启用 F# 到 C# 内存中引用,所以您不必为了引用 F# 代码而构建 C# 项目即可查看更改。 这项更改带来了更好的跨语言重构和导航,因为除了已经工作的 C# 到 F# 内存中引用之外,F# 编译器服务现在始终查看实际的 C# 源。

对 IntelliJ 平台语言注入的支持

我们添加了对 IntelliJ 平台语言注入的支持,您可以在 F# 文字中使用各种前端语言,以及访问数据库、打开 Web 链接或问题等。

Go to File Member

Go to File Member(转到文件成员)

新的 Go to File Member(转到文件成员)弹出窗口现在可用于 F#,使查看文件结构和从基类型导航到成员更加简单。

针对联合案例模式的更新

针对联合案例模式的更新

我们引入了一些实用改进,让您可以更轻松地使用联合案例模式:

  • 将联合案例模式转换为命名字段模式的新上下文操作。
  • 将命名字段模式用于联合案例的新规则。
  • 改进了联合案例模式的规则,析构弹出窗口不会阻止您手动输入模式。

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.

插件

Settings Sync(设置同步)插件

Settings Sync(设置同步)插件

长期以来,有两个并行存在且具有交叉功能的插件:IDE Settings Sync(IDE 设置同步)和 Settings Repository(设置仓库)。

为避免因拥有两个近似捆绑插件而造成困惑,我们将其功能集合并为一个解决方案,即新的 Settings Sync(设置同步)插件。

针对插件开发者的 LSP 支持

Rider 2023.2 为插件开发者提供了对 LSP API 的支持。 LSP API 主要针对想要在 IDE 中使用特定 LSP 服务器提供编码辅助的插件开发者。 如果您已经创建了自己的编程语言或框架,则可以编写 LSP 服务器和插件以在 IDE 中获得支持。

目前,LSP 支持包括错误和警告高亮显示、快速修复、代码补全和声明导航。 有关详情,请参阅 IntelliJ IDEA 团队的这篇博文

Rider 的 Feature Trainer

Rider 2023.2 引入了 Feature Trainer,这是一种新的交互式工具,旨在让新用户和经验丰富的用户熟悉 IDE 提供的广泛功能和工作流。 Feature Trainer 采用动手学习方式,提供分步说明和示例代码供您练习。 转到 Help | Learn IDE Features(帮助 | 学习 IDE 功能)尝试。 Feature Trainer 仅在新 UI 中可用。

无障碍功能改进

JetBrains 致力于让产品更具有包容性并可供所有人不受阻碍地使用。 在这个版本中,我们对 Rider 的无障碍功能做出了多项改进,确保所有用户,包括失明或视力障碍者,都能充分使用我们的产品。 改进包括:

  • UI 元素的正确标签和描述。
  • 改进了 Settings / Preferences(设置/偏好设置)中的键盘导航和控制。
  • 增强了对屏幕阅读器(例如 NVDA)的支持,特别是在 Run(运行)标签页中。
  • 改进了文档、帮助资源和 NuGet 软件包管理的无障碍功能。
  • 改进了 Windows 窗体设计器中的无障碍功能。

其他

对远程调试器的 ARM32 支持

除了对 ARM64 的现有支持之外,Rider 2023.2 还引入了对上传到在 ARM32 上运行的远程机器(例如 Raspberry Pi)的远程调试器工具的支持。 要附加到此类远程进程,请使用 Attach to Process(附加到进程)对话框。

Windows 上到 ConPTY 的终端迁移

JetBrains Rider 包含嵌入式终端模拟器,可从 IDE 内部使用命令行 shell。 在 Windows 上,先前版本的 Rider 依赖第三方 WinPTY 库作为终端模拟层。 在 Rider 2023.2 中,我们针对其支持的 Windows 版本切换到操作系统提供的 ConPTY。 预计不会产生明显的变化,但这一切换为进一步改进终端和运行控制台打开了大门。