API验证器,帮助ReSharper开启VS插件新时代!

news2024/10/6 0:28:59

实质上,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 已过时、被移除、更改或更新,帮助您将无法编译的部分归零,无需打开包含插件代码的项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WideNet:让网络更宽而不是更深

这是新加坡国立大学在2022 aaai发布的一篇论文。WideNet是一种参数有效的框架&#xff0c;它的方向是更宽而不是更深。通过混合专家(MoE)代替前馈网络(FFN)&#xff0c;使模型沿宽度缩放。使用单独LN用于转换各种语义表示&#xff0c;而不是共享权重。 混合专家(MoEs) 条件计…

STM32 串口代码配置

一、首先开发板上关于串口1的引脚配置已经配置好了&#xff0c;位置在SYSTEM的 usart.c 文件中&#xff08;注意&#xff1a;只配置了串口1的&#xff0c;其他使用时需要自己配置&#xff09; 重要的是明白配置的参数都是什么意思&#xff0c;针对实现不同的串口功能有什么影响…

入门Python笔记(基础)

入门Python笔记 入门Python笔记(基础)1. Python的特点2. Python安装3. Python中的数据类型3.1 数字类型3.1.1 整数类型3.1.2 浮点类型3.1.3 复数类型3.1.4 布尔类型 3.2 数字类型的相互转换 4. 运算符4.1 算术运算符4.2 比较运算符4.3 逻辑运算符4.4 位运算符4.5 赋值运算符4.6…

基于Java SpringBoot和Vue UniAPP的微信商城小程序

摘要 近年来&#xff0c;随着我国网络基础设施的不断完善和信息技术的不断发展&#xff0c;第三方支付手段得到了广泛的普及&#xff0c;网上购物已经成为人们生活中的重要内容&#xff0c;基于PC平台的网上商城系统可以足不出户就可以享受购物。 基于手机的网购微信小程序发挥…

Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)

1、Spark概述 1.1 什么是Spark Spark是一个基于内存的快速、通用、可扩展的大数据分析计算引擎。 1.2 Hadoop和Spark历史 Hadoop的Yarn框架比Spark框架诞生的晚&#xff0c;所以Spark自己也设计了一套资源调度框架。 1.3 Hadoop和Spark框架对比 1.4 Spark内置模块 模块名作…

前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放效果 可图片预览

前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放 &#xff0c;可图片预览&#xff0c;下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13325 效果图如下: # cc-videoSwiper #### 使用方法 使用方法 <!-- g…

怎么学习PHP会话管理和用户认证? - 易智编译EaseEditing

学习PHP会话管理和用户认证可以按照以下步骤进行&#xff1a; 理解基本概念&#xff1a; 首先&#xff0c;了解会话管理和用户认证的基本概念和原理。会话管理涉及在Web应用程序中跟踪用户状态和数据的技术&#xff0c;而用户认证涉及验证用户身份的过程。 学习PHP的会话管理…

telnet登录ARM开发板

telnet远程登录ARM开发板 1、ARM开发板中telnet设置2、ubuntu登录开发板 Telnet协议是TCP/IP协议族中的一员&#xff0c;是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序&#xff0c;用…

2023年7月8日(星期六):骑行小空山

2023年7月8日(星期六)&#xff1a;骑行小空山&#xff0c;早8:30到9:00&#xff0c; 昆明氧气厂门囗红绿灯下&#xff08;学府路和普吉路交叉路囗&#xff09;&#xff0c;9:30点准时出发 【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点: 昆明氧…

Mysql,使用 UNION ALL 处理 ‘无中生有‘ 的数据。

在日常的开发工作中&#xff0c;有时我们需要在SQL层面添加一些数据库表中没有的数据&#xff0c;那么我们就可以使用 UNION ALL 关键字来解决。 一、简单的无中生有&#xff1a;在查询返回结果中添加数据 以下方的SQL1为例&#xff0c;我们根据 id 查询 user 表中的数据&#…

118.浏览器支持和修复Safari浏览器的Flexbox漏洞

在我们之前的文章中&#xff0c;我们介绍了测试的步骤 虽然现在大部分新版本的浏览器都能支持99%的CSS属性&#xff0c;但是不排除的是仍然有一些用户使用老的IE浏览器或者版本较低的浏览器去浏览我们的网页&#xff0c;这样我们的网站可能无法按照我们的预期工作&#xff1b…

k8s从节点加入主节点[preflight] Running pre-flight checks卡住(已解决)

文章目录 一、写在前面二、问题排查1、执行join时加上-v2参数查看日志2、处理证书问题3、重启4、其他方法15、其他方法2 三、总结参考资料 一、写在前面 部署k8s时&#xff0c;主节点部署成功了&#xff0c;从节点1执行kubeadm join也成功了&#xff0c;从节点2执行kubeadm jo…

传输控制协议 TCP

文章目录 一、TCP报文格式1.报头格式2.TCP最大段长度 MSS 二、TCP连接建立与释放1.连接建立&#xff1a;三次握手2.报文传输3.连接释放&#xff1a;四次挥手4.保持定时器与时间等待定时器 三、TCP差错重传1.字节流状态分类与滑动窗口&#xff08;发送&#xff09;① 滑动窗口两…

基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计

2.1 需求分析及技术指标 2.1.1 需求分析 VME 总线控制器需要实现数据传输、中断处理、测量显示等功能。同时还需 要具有操作系统、底层驱动程序以及功能接口等&#xff0c;以方便用户进行上层应用软件开 发及使用。 本课题需要实现 VME 控制器的国产化开发&#xff0…

mysql误操作数据如何恢复

在此之前还是强烈建议大家进行定时备份&#xff0c;不然数据量多的话真的会有点emo的&#xff0c;好啦进入正题 操作背景&#xff1a;服务器windows server2012 数据库MySQL8.0 本人情况很奇葩&#xff0c;之前是备份了目标表的转储sql&#xff0c;但是我不知道是什么时候备…

RabbitMQ的基本概念和七种队列模式

I. RabbitMQ的基本概念 1. 生产者/消费者 生产者(Producer) 消息的创建者。 负责创建和推送数据到消息服务器。 消费者(Consumer) 消息的接收方。 负责接收消息和处理数据。 2. 消息队列(Queue) 消息队列是RabbitMQ的内部对象&#xff0c;用于存储生产者的消息直到发送给消…

【手撕算法|动态规划系列No.2】leetcode面试题 08.01. 三步问题

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

linux入门练级篇 第二讲 基本指令2

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

MySQL Optimization Learning(一)

目录 一、MySQL性能监控 1、show profile 2、performance schema 2.1、MYSQL performance schema详解 3、show processlist 一、MySQL性能监控 MySQL官网 拖到首页最下方找到 MySQL Reference Manual ->cmd命令行 C:\Users\Administrator>mysql -uroot -proot …

vue vant Calendar日历定制

calendar文档 <template> ...<Calendar :min-date"start" :max-date"end":title"null" :show-mark"false" :show-subtitle"false" :show-confirm"false" :show-title"true":poppable"fa…