Rider 最新变化

借助 Rider 2021.1,您可以更轻松地为项目添加 Docker 支持。 它让您可以直接从欢迎界面附加到 .NET 进程,并通过调试器提示介入调试器进程。 我们为 ASP.NET 开发者添加了基架,包括 Identity 和“CRUD”Entity Framework 以及路由模板分析。 C# 支持获得大规模更新,这次主要为模式和记录支持。

Docker 支持

添加 Docker 支持

现在,在 Rider 中可以更轻松地为项目添加 Docker 支持 - 您可以在创建新项目时生成 Dockerfile。 如果您选择 ASP.NET Core Web 应用程序、Worker 服务或控制台应用程序,那么只需在 New project 对话框中选择 Docker Support

如果要将 Dockerfile 添加到现有项目中,请使用 Solution Explorer 工具窗口中项目上下文菜单的 Add | Docker Support

Dockerfile

Rider 开箱即可运行 Visual Studio 生成的 Dockerfile。 无需在 Dockerfile 中进行其他更改即可使其与 Rider 兼容。

C# 支持

合并更多模式

Merge into pattern 检查现在可以处理更多代码模式。

null 检查与其他检查融合成单一的模式检查.

conditional?.Access 表达式的检查改写为嵌套模式匹配.

合并检查,减少 if 语句嵌套.

最后,您可以将模式扩展为完整的形式,从而将其合并到简单的 var (a,b) 析构模式中.

更多 C# 9.0 支持

我们为 C# 9.0 记录添加了更多支持。

Extract interfaceExtract superclass 重构现在支持记录声明,File Layout 也支持 XML 文档相关功能。

我们带来一套新的检查和操作。 迁移代码以使用具有位置参数和隐式属性声明的记录时,针对 record 声明中属性的 Redundant explicit property declaration 可以提供帮助。 已添加相应的快速修复 Remove explicit property

为了保持整洁:Redundant 'record' type declaration body 检查和相应的快速修复将用分号代替空的记录类型声明体。

  • 如果您决定将记录变成类,To class 操作将处理位置参数和主构造函数。 To record 操作适用于相反的流程。
  • 需要将位置参数和主构造函数重写为普通属性、构造函数和显式 Deconstruct() 方法时,可以使用 To explicit constructor 上下文操作。
  • Find usages 现在可以搜索记录的主构造函数的用法和隐式 Deconstruct() 方法的用法。

内联临时变量

我们引入了一个新检查 Inline temporary variable

有时,您可能会在程序中以不同的名称反复使用相同的值。 这样的代码可以变得更加透明吗? 当然可以,交给 Rider 就够了。 如果临时变量应该初始化为其他值或稍后在代码中突变,它甚至可以帮助您发现错误。

元组中的 Rename

命名元组始于 C# 7,但重命名组件至今仍然是手动操作。 是时候改变了 - 您现在可以立即调用重构。

其他新功能

逻辑 not 模式可以帮助您使类型检查更易读。 Rider 建议放弃 !() 语法,改用 not 模式。

对于 C# 10.0 支持,我们做出了一些初步改善,并让 Rider 支持常量字符串插值功能。

  • 在可以简化代码的时候,Rider 现在将建议使用范围运算符代替 SliceSubstring
  • 现在,Namespace does not correspond to file location 检查在具有顶层代码的文件中被禁止。
  • 新增一项检查,用于确认是否可以使用计算所得属性替换自动属性,同时增加一个快速修复来进行替换。

Web 开发

ASP.NET 的基架

我们给使用 ASP.NET MVC、ASP.NET Web API 或 Razor Pages 的开发者带来一些好消息! 我们为 ASP.NET Core 项目添加了基架机制。

Rider 支持基架 Areas、Controllers、Razor Pages、Views 和 Identity,包括为使用 Entity Framework 的完整 CRUD 操作生成样板源代码。

适用于 Windows、Linux 和 macOS。

Rider uses dotnet aspnet-codegenerator under the hood.

ASP.NET Core 项目的基架登陆 Rider 2021.1 中了解详情。

ASP.NET Core 路由模板

路由模板在 MVC 应用程序中广泛使用,用于配置 HTTP 请求与应用程序的可执行端点的匹配方式。 在 2021.1 版本中,我们引入了对路由模板的支持。 Rider 现在提供代码补全、结构导航、检查和快速修复。 包括:

  • 用于确认 HTTP 语法错误的检查。
  • 用于确认/修复路由参数问题的检查和快速修复。
  • 路由约束的检查。

ReSharper 最新变化中了解详情。

发布前删除文件

现在可以选择在发布前删除文件夹中的既有文件。 例如,在移动文件时,它可以帮助您摆脱过时的数据。 请注意,启用后,Rider 将彻底清理目标位置。

捆绑的 MDN 文档

MDN 文档现与 Rider 捆绑。 这将有助于防止 MDN 网站的连接问题,并使编辑器内文档在 HTML、CSS 和 JavaScript 文件中显示得更快。 编辑器内文档也将提供更多信息(例如,您将看到有关 JavaScript API 受支持的浏览器版本的详细信息)。

改进了对 Stylelint 的支持

CSS 代码的 Stylelint 检查更加易于操作。 点击几下即可解决这个 linter 的问题。 将鼠标悬停在文件中的问题上或将文本光标放在其上,然后按 Alt+Enter,选择 Stylelint: Fix current file

此外,您现在可以在 Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint 中指定配置文件的路径。

CSS 的选择器特异性

现在,使用样式表时,您可以检查选择器的特异性 - 只需将鼠标悬停在要研究的选择器上即可。 或者,将焦点放在选择器上,按 F1/Ctrl+Q 在 Documentation 弹出窗口中查看这些信息。

HTML 预览

新的内置浏览器预览可以让您快速预览 HTML 文件。 点击编辑器右上角微件中带有 Rider 徽标的图标即可打开预览。

调试器

在欢迎界面附加到进程

现在,您可以直接从欢迎界面附加到 .NET 进程! 不再需要先打开包含源代码的解决方案。 在欢迎界面选择 Attach to process 标签页,从列表中选择需要的 .NET 进程,Rider 随即开始调试。

交互式调试器提示

Rider 现已添加交互式调试器提示! 编辑器中的提示不仅可以展示正在发生的事,还可以让您通过调试器提示介入调试进程,并与之交互。 点击提示,选择 Set Value 即可进入交互式模式。 您可以输入原始数据,也可以借助自动补全使用其他值。 对应快捷键也已提供。

您可以使用 Settings | Build, Execution, Deployment | Debugger | Data Views 中的 Show values inline 设置启用调试器提示。

其他调试器更新

  • 如果对象的表示已被 DebuggerBrowsable 特性更改,新增的选项可以显示该对象的原始数据。
  • 我们添加的选项可在调试时显示所有编译器生成的成员。
  • 远程调试进程的内容现在可以在 macOS 上正确显示。
  • 对于无法评估的情况(例如,代码已优化或线程不在 GC 安全点),我们增加了对自动属性评估的支持。

游戏相关

Unity

Rider 2021.1 基于 Rider 已为 Unity 提供的诸多创新功能,可以让您更详细地了解 Unity 项目。 Unity 在 asset 的什么位置使用您的代码? Update 中性能关键代码路径每帧调用的是什么? 如何更好地调试、测试和覆盖代码?

Rider 可以向您展示 Unity 在 scene、asset 和 prefab 中使用代码的位置,直接在 Unity Editor 中高亮显示用法。

Rider 2021.1 对此进行了扩展以支持动画 asset,将属性和方法的用法显示为动画回调。

Rider 为 Unity 魔术字符串提供了代码补全和验证。 Rider 先前已支持标记、层名称、scene 和协程,Rider 2021.1 增加了对动画状态值的支持。

Rider 的早期版本强调对性能至关重要的方法、频繁调用的方法或 Burst 编译的方法,但原因并不总是很明显。

Rider 2021.1 增加了菜单项,可以显示所有在热路径中调用的方法并回溯到 Update 方法,或者跟踪传出调用以最终到达已知的高开销 Unity API。

对于 Burst 编译的方法,Rider 会展示所有调用的方法返回 Burst 上下文起点的路线。

Rider 已经提供了对 Unity 项目的扩展调试支持,可以向您显示 Active Scene 对象并向调试器视图添加子游戏对象和组件。

Rider 2021.1 也有助于调试 SerializedProperty 实例。 无关字段默认隐藏,仅显示与属性类型相关的值。 您可以轻松查看子属性和所有序列化数据。

Rider 扩展了其基于 Unity 的单元测试支持,以涵盖游戏模式测试的代码覆盖率。 在代码编辑器内即可查找、运行和调试,并显示 Unity 编辑模式和游戏模式测试的代码覆盖率。

此外还有许多小改动和修复,包括更强劲的元文件处理、Unity 工具窗口中更高效的日志条目添加,以及 Unity 相关文件模板的更好分组。

Godot

我们的 Godot Support for Rider 插件也已更新。 现在,它支持直接在游戏过程中运行 NUnit 单元测试,协助确保运行符合预期。 Follow the instructions in this pull request to make it work in your game today! 请在评论中分享您对该 Pull Request 的反馈。

Unreal Engine 早期预览 仅限 Windows

Rider for Unreal Engine 目前仍处于公开预览阶段,计划于 2021 年作为 Rider 的一部分发布。 在公开发布之前,您可以免费评估预览版。

The Unreal Engine’s Cast for type-safe dynamic casting is now available as a postfix template in code completion. Rider 还支持另一个 Unreal Engine 特定反射宏 - RIGVM_METHOD

我们根据从 Epic Games 团队获得的反馈,引入了对 Unreal Engine 5 的初步支持和直观修复。

对于 C++ 方面,增加了 IncludeType Hierarchies,以及对 Google Test 和其他 C++ 单元测试框架的支持。

VCS

Pull Request 改进

  • Pull Request (PR) 视图现在具有下拉列表,其中包括当前项目的所有可用仓库。
  • PR 创建现在很直观 - 只需点击“+”图标或转到 Git | GitHub | Create Pull Request。 IDE 将在 Pull Requests 视图中打开一个表单,提示您提供 PR 详细信息。
  • 在 Info 标签页中,您可以选择 head 仓库及其分支,输入 PR 标题和描述,指定审查者和受理人,以及添加描述性标签。
  • 2021.1 版支持 PR 模板。 将带有 PR 描述的 pull_request_template.md 文件添加到项目,每次创建 PR 时,这个描述都会出现。

此处了解详情。

保存到 Shelf

在 v2021.1 中,您可以使用新的 Save to Shelf 操作将更改保留在本地并复制到 Shelf。 您可以通过快捷键或在 Search Everywhere 弹出窗口中输入 ‘Save to Shelf’ 访问此操作。

与分支比较

现在可以通过 Compare with branch 对话框从另一个分支复制文件。 您只需选择要复制的文件,然后点击 Show diff 旁边新增的向下箭头图标。

UI/UX

Solution Explorer

Rider 现在会在关闭和打开 IDE 之间保存 Solution Explorer 的状态,包括打开的节点。 您不再需要在每次重新打开解决方案或重新启动 IDE 时手动展开节点。

垂直拆分的编辑器标签页

打开多个垂直拆分编辑器标签页时,您现在可以双击以最大化各编辑器窗口。

文件夹选择对话框 仅限 Windows

我们重新设计了 Windows 上的文件夹选择对话框。 现在,它将仅显示您可以选择的文件夹。

任务栏中的最近解决方案 仅限 Windows

现在,您可以在 Windows 中右键点击任务栏或开始菜单上的Rider 图标访问最近打开的项目。

新的模态对话框 仅限 macOS

现已支持 macOS Big Sur 中的新模态对话框 UI。

Windows 窗体的 Toolbox 管理器 仅限 Windows

Windows 窗体设计器的 Toolbox 管理器已完全重新设计。

窗口左侧的列表包含按控件供应商分组的所有控件库(包括系统或第三方)。 在列表中选择库后,您可以在中间窗格上选择特定的控件。 只有它们会显示在 Toolbox 中,以保持列表整洁。 右侧窗格显示所选控件的元数据。

当您需要某个特定控件时,控件过多的库是否会让您不知所措? 没问题! 中间窗格中的新搜索将缩小控件列表,并在结果列表中高亮显示搜索子字符串。

最后,底部新增了计数器,显示保存时将有多少组件被移除或添加到 Toolbox。 点击 Apply 按钮后,结果将更加清楚直观。

编辑器

快速文档

Quick Documentation 窗口新增语法高亮显示,提供与代码编辑器中相同的高亮显示。 此外,鼠标悬停时现在将显示符号的 Quick Documentation。

字体粗细

在长时间的编码工作中,选择一个舒适的编辑器字体非常重要。 最近增加的版式设置让这个选择变得更加简单和个性化。 在 v2021.1 中,您可以在 Preferences / Settings | Editor | Fonts 中调整主字体和粗体字体的粗细。

XAML 预览器

我们改进了 XAML 预览工具,这是一种面向 WPF 和 XAML 开发者的基本反馈机制。

Rider 现在将 XAML 预览工具置于编辑器窗口中,让您可以在许多方向和布局选项之间切换。 您可以更改预览工具的方向,使其与编辑器垂直或水平分隔。

现在,获得焦点的元素将高亮显示,让您在复杂的 UI 设计中更容易找到特定的 UI 元素。

该工具现在允许您点击 TabItem 实例。 新增功能大幅改善了多标签页用户界面的构建体验。

XAML 预览工具现在将在渲染预览时遵循 DesignHeightDesignWidth 等设计属性。

请注意,XAML 预览仅适用于 Windows 上面向 .NET Framework 的应用程序。

有关详情,请参阅博文:Rider 2021.1 中的 XAML 预览工具改进

代码样式

格式设置和代码样式

我们添加了一些新设置:

  • 现在,您可以选择是否在目标类型的 new() 括号前和括号内设置空格。
  • 您可以在赋值运算符之前指定换行。
  • 您可以减少缩进标签语句。

对于自定义命名规则,我们更新了应用顺序 - 更具体的规则现在会优先应用。

最后,我们为 Format Selection 添加了新的 Reindent only 操作。 现在,您可以让 Rider 仅调整所选代码的缩进,而不执行整个重新格式化进程。

EditorConfig

EditorConfig 在 .NET 社区中越发流行,我们也在不断改进其与 Rider 的合作方式。 我们做出了以下改进:

  • 我们改进了 Rider 从 EditorConfig 中读取命名规则设置并将用户定义的命名规则写入 EditorConfig 的方式。
  • 如果在 EditorConfig 中重写了命名规则,Rider 会在命名设置页面上显示通知。
  • 我们在 EditorConfig 中添加了对 csharp_indent_case_contents_when_block 选项的支持。

F# 支持

我们为本地 let 绑定添加了新的 Inline Variable 重构。

Rider 现在可以根据构建中使用的项目和编译器计算允许的语言级别并提出改进建议,使您的 F# 代码更加现代化并处于最新状态。

新的分析器和快速修复 To Interpolated String 可将 printf 式格式字符串转换为 F# 5 插值字符串。 Thanks again to Saul for the nice implementation.

冗余括号分析和相应的快速修复将帮助您处理模式、类型和简单表达式中的括号。 我们计划在未来的版本中涵盖更多表达式用例。

此外还有大量 F# 支持的快速修复、重构和其他改进。 Please see the full release notes for more details.

Space 集成

Space 插件现可用于 Rider。 您可以通过欢迎屏幕上的 Get from VCS 连接到 JetBrains Space 中的组织。 登录后,您可以查看和克隆项目仓库,检查队友的代码以及编写 Space Automation 脚本

数据库支持

授权 UI

我们为修改对象时的授权编辑添加了一个 UI。

您可以使用 Ctrl+F6 在数据库资源管理器中的用户上调用 Modify user 窗口,该窗口现在具有向对象添加授权的 UI。

这适用于 PostgreSQL、Redshift、Greenplum、MySQL、MariaDB、DB2、SQL Server 和 Sybase。

系统函数可非限定使用 SQL Server

系统函数和过程在非限定使用时不再高亮显示为错误。 导航和补全现在也适用。

DataGrip 最新变化页面上详细了解数据库支持更新。

其他更新

NuGet Smart Restore on a build

我们实现了 NuGet Smart Restore on a build。 当启发检测到外部还原已执行时,它将对构建操作执行还原。 您可以在 Settings/Preferences | Build, Execution, Deployment | NuGet | Smart Restore on Build 设置中将其关闭。

在 Mono 上并行构建

Rider 现在支持在最新版本的 Mono 上并行构建。 请在 Settings | Build, Execution, Deployment | Toolset and Build 中启用。

Find in Files 中的外部依赖项

现在可以配置 Rider 在搜索文本时如何处理外部依赖项。 在 Find in Files 对话框中选择 Scope,然后点击 ‘…’ 按钮。 Scopes 窗口随即打开,显示 External Dependencies 是否处于范围内。 您可以使用右侧的按钮进行更改。

支持 JSON Lines 格式

现在,我们支持以换行符分隔的 JSON Lines 格式处理结构化数据和日志。 IDE 将识别 .jsonl.jslines.ldjson.ndjson 文件类型。

这些格式的文件包含多行,每行都是由换行符分隔的 JSON 对象。 行首或行尾不需要逗号,也不需要将文件内容全部括于方括号或大括号中。