实质上,ReSharper特征可用于C#,VB.net,XML,Asp.net,XAML,和构建脚本。 使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范围内代码分析,快速代码更正,一步完成代码格式化和清理,业界领先的自动代码重构,高级的集成单元测试方案,和强大的解决方案内导航和搜索。
ReSharper既是插件,也是强大的插件创建平台。 设计产品的各个方面时,ReSharper开发团队采用了依赖项注入方法,这就使ReSharper的任何组件都像一个可使用插件重写的构建块,为微调ReSharper行为带来无限可能。 既是VS插件,也是强大的插件创建平台,本文将为大家介绍API验证器为ReSharper带来的一些改变!
“每个公共组件都是一个扩展点”的策略限制了重构现有代码的能力,为进程外模式准备ReSharper或为集成到Fleet准备的代码库等大规模重构也因此变得更为困难。 多年来,官方一直表示ReSharper的每个新版本都与已安装的插件不兼容,即使它们引用的API集在技术上没有发生变化,由于内部重构,无法保证无缝迁移。
ReSharper和Rider每年都会发布三个主要版本,因此直到最近,插件开发者每年都要被迫重新编译插件至少三次。
因此,官方开始考虑让ReSharper的平台自动检测其插件引用的API中的变化。
ReSharper v2023.1正式版下载
什么是API验证器?
在ReSharper中,我们将每个插件都视为产品的重要组成部分,所有部件在安装期间组合。 在这个阶段,可以检测插件使用的API是否被更改或在最新版本的ReSharper中不再可用。
如果 API 验证器发出危险信号,该插件将被标记为 Incompatible(不兼容),不会添加到安装的产品中。 但是它将保留在 ReSharper 内 Extension manager(扩展程序管理器)中的已安装插件列表中。
通过API验证的插件将自动迁移到产品的下一个版本,ReSharper 2023.1实际上是第二个包含API验证器的版本,因此在 2023.1版本之前兼容的所有插件都将被保留。
指定依赖项的新方式
引入API验证器的同时,官方还更改了指定与产品版本兼容性相关的依赖项的要求,这需要讲一些背景。
在内部,官方把主要版本称为“wave”,命名wave时,取发布年份的最后两位数字,再加上一位数字表示该年的版本编号。 例如,对于2023年的第一个主要版本,wave名为“wave 231”,2022年的第三个版本是“wave 223”。
在插件中将wave名称指定为依赖项有两种好处,第一它将帮助我们验证软件包确实是ReSharper的扩展程序;第二指定兼容wave的范围让您可以指示哪些版本的产品与插件兼容。
过去建议为此使用区间表示法,例如如果您将区间表示法的范围指定为 [223-231),则表示插件仅与 2022.3 版本兼容。 但是引入API验证器后,现在建议不使用区间表示法指定 wave,您可以将 231 指定为 wave 依赖项来声明向前兼容性,如下所示:
<dependencies>
<dependency id="Wave" version="231.0.0"/>
</dependencies>
Marketplace集成
在安装期间执行的API验证器代码也在 JetBrains Marketplace 中实现,这对插件开发者来说是个好消息,因为当 SDK 中不再出现所用 API 时,插件的页面现在会显示详细警告。 在每个抢先体验预览或主要版本公开之前,会在所有可用插件上执行 API 验证。
插件开发者还可以选择在插件未通过验证流程时选择接收电子邮件通知,这些电子邮件详细说明了哪些 API 已过时、被移除、更改或更新,帮助您将无法编译的部分归零,无需打开包含插件代码的项目。