公司动态
API验证器,帮助ReSharper开启VS插件新时代!
实质上ReSharper特征可用于C#VB.netXMLAsp.netXAML和构建脚本。 使用ReSharper你可以进行深度代码分析智能代码协助实时错误代码高亮显示解决方案范围内代码分析快速代码更正一步完成代码格式化和清理业界领先的自动代码重构高级的集成单元测试方案和强大的解决方案内导航和搜索。ReSharper既是插件也是强大的插件创建平台。 设计产品的各个方面时ReSharper开发团队采用了依赖项注入方法这就使ReSharper的任何组件都像一个可使用插件重写的构建块为微调ReSharper行为带来无限可能。 既是VS插件也是强大的插件创建平台本文将为大家介绍API验证器为ReSharper带来的一些改变“每个公共组件都是一个扩展点”的策略限制了重构现有代码的能力为进程外模式准备ReSharper或为集成到Fleet准备的代码库等大规模重构也因此变得更为困难。 多年来官方一直表示ReSharper的每个新版本都与已安装的插件不兼容即使它们引用的API集在技术上没有发生变化由于内部重构无法保证无缝迁移。ReSharper和Rider每年都会发布三个主要版本因此直到最近插件开发者每年都要被迫重新编译插件至少三次。因此官方开始考虑让ReSharper的平台自动检测其插件引用的API中的变化。什么是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 idWave version231.0.0/ /dependenciesMarketplace集成在安装期间执行的API验证器代码也在JetBrainsMarketplace 中实现这对插件开发者来说是个好消息因为当 SDK 中不再出现所用 API 时插件的页面现在会显示详细警告。 在每个抢先体验预览或主要版本公开之前会在所有可用插件上执行 API 验证。插件开发者还可以选择在插件未通过验证流程时选择接收电子邮件通知这些电子邮件详细说明了哪些 API 已过时、被移除、更改或更新帮助您将无法编译的部分归零无需打开包含插件代码的项目。