在 macOS 和 Linux 上,Rider 2020.1 现在默认在 .NET Core 运行时上运行后端,并提供 Xamarin Hot Reload 和 Dynamic Program Analysis。 它引入了一种简单的方法来配置编辑器的严重性,并增加了对整数值的数据流分析以及更快的代码补全速度。 Debug 窗口已经过重新设计,并且 Extract Class 重构和 Coverage Filters 现在可用。
欢迎使用 Rider .NET Core 版本! 在 macOS 和 Linux 上,后端终于实现了默认在 .NET Core 运行时而不是 Mono 运行时上运行。 您会立即注意到:
顺带一提,当前的 .NET Core 版本是最新、最出色的 3.1,与 3.0 版本相比,它拥有许多性能改进。
请注意,目前不支持 Windows,只支持 macOS 和 Linux。 我们计划在今年晚些时候添加 Windows 支持。
您是否想了解有关从 Mono 转换到 .NET Core 的更多信息,并查看性能图? 查看这篇博文!
如果您在 .NET Core 上运行 Rider 后端时遇到任何问题,并且想要返回 Mono 运行时,请选择 Help | Switch IDE runtime to Mono。 如果您有任何问题,请别忘记告诉我们。
现已实现对 Xamarin Hot Reload 的初步支持。 现在,在设备或模拟器上调试时,Rider 会将在 Xamarin Forms XAML 中所做的更改自动应用到应用程序,无需重新构建和重新部署整个应用程序。
请注意存在的限制:如果装有 Rider 的 PC/笔记本电脑和 iOS 设备不在同一个 Wi-Fi 网络中,则即使将 iOS 设备通过 USB 连接到 PC/笔记本电脑,Hot Reload 也无法正常工作。
除此之外,Xamarin 支持还获得一个重要修复:在 iPhone XS Max 设备上运行 Xamarin.iOS 项目时,Invalid target architecture 'arm64e' 错误不再出现。
查看博文了解更多更新。
我们很高兴引入 Dynamic Program Analysis。 每次在 Rider 中运行您的项目时,DPA 都会开始收集内存分配数据。 关闭应用程序后,DPA 将显示检测到的问题列表:闭包以及到大型和小型对象堆的分配。 最大的优点在于,您无需启动任何“分析会话”即可获取快照。 可以像往常一样正常运行,并且所有数据都将在后台收集,开销几乎为零。 在各种实际解决方案上测试 DPA 的结果表明,速度只会降低 0% 到 2%。
请注意:DPA 仅适用于 Windows,并且无需单独的许可证即可将其激活。
这一版本的 Rider 引入了一种新型代码分析,可以在应用程序中跟踪整数值的用法。 这种新型的分析会跟踪所有 int
局部变量的值如何变化,并验证这些变量上的所有常见运算的正确性,以检测无用或可能出错的代码段。 即,它会警告您:
true
或 false
的关系/相等运算符。int
值的启发式不可到达的 switch
case。1
、加 0
等。int
溢出。0
。为了改进分析的精确性,我们还添加了两个新的 JetBrains.Annotations 特性来使用 int
类型的类型成员和参数:([NonNegativeValue]
和 [ValueRange(from, to)]
)。 这些特性指定了特定 int
成员的值在运行时如何变化。
ScriptableObjects
的用法和序列化字段的值。Boo.Lang.List
或 System.Diagnostics.Debug
。我们继续添加了对 C# 8 语言功能的更多支持。 我们在后台对 C# 语言支持进行了许多重构来准备代码分析和其他功能(如重构和 ReSharper Build),以支持可空引用类型 (NRT)。 在 Rider 2020.1 中,代码分析会报告与可空引用类型相关的编译警告并为其中大多数警告提供了快速修复。
还有一些新的检查和快速修复:
async
重载(可用时),而不使用 sync
重载。nameof
表达式,而不使用 typeof(SomeType).Name 构造,以便获得当前类型的名称。在过去的一年中,我们收到了一些关于代码补全弹出窗口的报告,指出这些弹出窗口需要很长时间才会显示。 我们已经解决了这个问题,现在当您开始输入后,代码补全弹出窗口的显示速度显著提高,尤其是在大型解决方案中。
此版本提供的另一个非常方便的功能是,如果您不想在代码补全中看到标记为 Obsolete 的成员,可以将其隐藏。
最后但同样重要的是,从代码补全弹出窗口中补全一个项目现在可以遵循您的代码样式设置。
我们完全重新设计了 Debug 工具窗口的 UI,使其尽可能干净整洁。 当只有一个调试会话运行时,选项卡的布局会得到简化,因为所有选项卡现在都位于一个级别上。 选项卡标题占用的空间更少,因此有更多空间显示调试器内容。 存在多个会话时,将添加一个选项卡层来分隔各个会话。
同时,我们还合并了 Threads 和 Frames 视图。 如果您目前不需要 Threads 视图,则可以通过点击 Hide threads view 图标将其隐藏。
我们还更新了调试器引擎,以便增强您的调试体验:
借助这项新功能,您可以轻松更改编辑器的高亮显示级别。 只需在非模态弹出窗口中点击一下,即可打开或关闭 Code Vision、 Parameter Hints、Unity Performance Hints、Errors、Warnings、Suggestions、Context actions 以及更多元素。 在代码编辑器选项卡的右下角可以找到铅笔图标。
我们调整了 Unit Test Session 和 Unit Test Explorer 窗口中的工具栏。
除此之外,我们还添加了三大功能:
在 Rider 2019.3 中,我们添加了一个实验性 TFS 客户端,此客户端可为 Checking for changes 操作提供显著的速度改进。 在当前发布周期中,我们继续在该客户端上投入了大量精力。
最终,我们的 TFS 客户端发布了第一个版本,带来了许多改进。 我们来看看两个最重要的改进。 首先,启用 Version Control Integration 现在适用于使用 Visual Studio 在本地创建的 TFS 工作区。 这意味着您不再需要在 Rider 中从头开始重新创建本地工作区。 第二,我们大幅提高了 Delete 和 Rollback 操作的性能。
要开始使用 TFS 客户端,请转到 Settings | Version Control | TFVC 并启用它。
像所有 JetBrains IDE 一样,Rider 现在在所有主题中使用 JetBrains Mono 作为默认字体。 我们希望您喜欢它!
现在,终于完全支持到目前为止 Rider 中一直缺少的另一个 ReSharper 功能:在解决方案的文件中粘贴代码时,可以自动导入命名空间。
如果您手动编辑与 NuGet 相关的文件,我们认为您将乐于从 Rider 获得协助,因为它现在初步支持编辑 NuGet.Config、packages.config 和 *.nuspec 文件,包括代码补全、语法验证和快速文档弹出窗口。
以下较小的功能增强也值得一提:
另一个期待已久的 ReSharper 重构终于登陆 Rider - Extract Class。
想知道为什么您需要此重构? 想象一下,您有一个类正在完成实际上应当由两个不同的类完成的任务。 使用此重构是将复杂类分解成两个单一职责类最安全、最有效的方法。Extract Class 将帮助您选择要从旧类转移到新类的方法和字段。 对于任何中断的依赖项和可访问性问题,它还会发出警告,并建议冲突解决方案选项。
Solution Explorer 视图引入了两个新的实用文件夹,可为您提供有关项目的更多信息:作为 Assemblies 文件夹的子文件夹的 Implicit references,以及 MSBuild import targets。
除此之外,还有一些较小的更新:
为了更好地控制您在 Rider 中获得的单元测试覆盖率结果,我们添加了 Coverage Filters。 要指定这些筛选器,请转到 Preferences/Settings | Build, Execution, Deployment | dotCover | Filtering。
如果您在 Linux 或 macOS 上进行性能分析,我们为您带来了一些好消息:在这些操作系统上,.NET Core 应用程序终于可以在 Tracing 模式下进行性能分析了。 在 Linux 上,您现在还可以将分析器附加到 .NET Core 应用程序。
我们为 Rider 的反编译器和 IL Viewer 添加了一些新功能:
为了改善 Rider 中的 F# 支持,我们进行了大量改进和修复,旨在为您的日常工作提供帮助:
this.Property
) 以及索引器表达式 ("foo".[1]
)。()
表达式。
有关更多更新和修复,请参阅 GitHub 存储库。
(文/开源中国)